perm filename LISP.XGP[F77,JMC]4 blob sn#340379 filedate 1978-03-10 generic text, type T, neo UTF8
/LMAR=0/XLINE=3/FONT#0=BAXL30/FONT#1=BAXM30/FONT#2=BAXB30/FONT#3=SUB/FONT#4=SUP/FONT#5=BASL35/FONT#6=NGR25/FONT#7=MATH30/FONT#8=FIX25/FONT#9=GRK30/FONT#10=ZERO30/FONT#11=BAXI30/pmar=2500



␈↓ ↓H␈↓α␈↓ ¬?HISTORY OF LISP

␈↓ ↓H␈↓␈↓ ¬aJohn McCarthy
␈↓ ↓H␈↓␈↓ ∧rArtificial Intelligence Laboratory
␈↓ ↓H␈↓␈↓ ¬GStanford University



␈↓ ↓H␈↓1. Introduction.

␈↓ ↓H␈↓␈↓ α_This␈α∩paper␈α∩concentrates␈α∩on␈α∩the␈α∩development␈α∩of␈α∪the␈α∩basic
␈↓ ↓H␈↓ideas␈α⊗and␈α⊗distinguishes␈α⊗two␈α⊗periods␈α⊗-␈α⊗Summer␈α⊗1956␈α⊗through
␈↓ ↓H␈↓Summer␈α1958␈αwhen␈αmost␈αof␈αthe␈αkey␈αideas␈αwere␈αdeveloped␈α(some␈αof
␈↓ ↓H␈↓which␈α
were␈α
implemented␈α
in␈α
the␈α
FORTRAN␈α
based␈α
FLPL),␈α
and␈α
Fall
␈↓ ↓H␈↓1958␈α≡through␈α≡1962␈α≡when␈α≡the␈α≡programming␈α≡language␈α≡was
␈↓ ↓H␈↓implemented␈α∃and␈α∃applied␈α∃to␈α∃problems␈α∃of␈α∃artificial␈α∀intelligence.
␈↓ ↓H␈↓After␈α
1962,␈α∞the␈α
development␈α
of␈α∞LISP␈α
became␈α∞multi-stranded,␈α
and
␈↓ ↓H␈↓different ideas were pursued in different places.

␈↓ ↓H␈↓␈↓ α_Except␈α∂where␈α⊂I␈α∂give␈α⊂credit␈α∂to␈α⊂someone␈α∂else␈α⊂for␈α∂an␈α⊂idea␈α∂or
␈↓ ↓H␈↓decision,␈α
I␈α∞should␈α
be␈α∞regarded␈α
as␈α
tentatively␈α∞claiming␈α
credit␈α∞for␈α
it
␈↓ ↓H␈↓or␈α↔else␈α_regarding␈α↔it␈α↔as␈α_a␈α↔consequence␈α↔of␈α_previous␈α↔decisions.
␈↓ ↓H␈↓However,␈α
I␈α
have␈α
made␈α
mistakes␈α
about␈α
such␈α
matters␈α
in␈α
the␈α
past,␈α
and
␈↓ ↓H␈↓I␈α⊂have␈α⊂received␈α∂very␈α⊂little␈α⊂response␈α∂to␈α⊂requests␈α⊂for␈α⊂comments␈α∂on
␈↓ ↓H␈↓drafts␈α∂of␈α∂this␈α∂paper.␈α∂ It␈α⊂is␈α∂particularly␈α∂easy␈α∂to␈α∂take␈α∂as␈α⊂obvious␈α∂a
␈↓ ↓H␈↓feature␈α∞that␈α∞cost␈α∞someone␈α∂else␈α∞considerable␈α∞thought␈α∞long␈α∂ago.␈α∞ As
␈↓ ↓H␈↓the␈αwriting␈αof␈αthis␈αpaper␈αapproaches␈αits␈αconclusion,␈αI␈αhave␈αbecome
␈↓ ↓H␈↓aware␈αof␈αadditional␈αsources␈αof␈αinformation␈αand␈αadditional␈αareas␈αof
␈↓ ↓H␈↓uncertainty.

␈↓ ↓H␈↓␈↓ α_As␈α⊂a␈α∂programming␈α⊂language,␈α⊂LISP␈α∂is␈α⊂characterized␈α⊂by␈α∂the
␈↓ ↓H␈↓following␈α∂ideas:␈α∂computing␈α∂with␈α∂symbolic␈α∂expressions␈α∂rather␈α∞than
␈↓ ↓H␈↓numbers,␈α∨representation␈α≡of␈α∨symbolic␈α≡expressions␈α∨and␈α≡other
␈↓ ↓H␈↓information␈α_by␈α_list␈α↔structure␈α_in␈α_the␈α↔memory␈α_of␈α_a␈α↔computer,
␈↓ ↓H␈↓representation␈α∂of␈α∂information␈α∂in␈α∞external␈α∂media␈α∂mostly␈α∂by␈α∞multi-
␈↓ ↓H␈↓level␈α∂lists␈α∂and␈α∂sometimes␈α∂by␈α∞S-expressions,␈α∂a␈α∂small␈α∂set␈α∂of␈α∞selector
␈↓ ↓H␈↓and␈α∂constructor␈α∂operations␈α∂expressed␈α∂as␈α∂functions,␈α∂composition␈α∞of
␈↓ ↓H␈↓functions␈αas␈αa␈αtool␈αfor␈αforming␈αmore␈αcomplex␈αfunctions,␈αthe␈αuse␈αof
␈↓ ↓H␈↓conditional␈α≡expressions␈α≥for␈α≡getting␈α≥branching␈α≡into␈α≥function
␈↓ ↓H␈↓definitions,␈α↔the␈α↔recursive␈α↔use␈α↔of␈α↔conditional␈α↔expressions␈α↔as␈α↔a
␈↓ ↓H␈↓sufficient␈α∩tool␈α∩for␈α⊃building␈α∩computable␈α∩functions,␈α⊃the␈α∩use␈α∩of␈α⊃λ-
␈↓ ↓H␈↓expressions␈α↔for␈α↔naming␈α⊗functions,␈α↔the␈α↔representation␈α↔of␈α⊗LISP
␈↓ ↓H␈↓programs␈α
as␈αLISP␈α
data,␈α
the␈αconditional␈α
expression␈αinterpretation␈α
of
␈↓ ↓H␈↓Boolean␈α
connectives,␈α
the␈α
LISP␈α
function␈α
␈↓↓eval␈↓␈α
that␈α
serves␈α
both␈α∞as␈α
a
␈↓ ↓H␈↓formal␈α∃definition␈α∃of␈α∃the␈α∃language␈α∃and␈α∃as␈α∃an␈α⊗interpreter,␈α∃and
␈↓ ↓H␈↓garbage␈α⊃collection␈α⊃as␈α⊃a␈α⊃means␈α⊃of␈α⊃handling␈α⊃the␈α⊃erasure␈α⊂problem.
␈↓ ↓H␈↓LISP␈αstatements␈αare␈αalso␈αused␈αas␈αa␈αcommand␈αlanguage␈αwhen␈αLISP
␈↓ ↓H␈↓is used in a time-sharing environment.

␈↓ ↓H␈↓␈↓ α_Some␈α⊂of␈α⊂these␈α⊂ideas␈α⊂were␈α⊂taken␈α⊂from␈α⊂other␈α⊂languages,␈α∂but
␈↓ ↓H␈↓most␈α∞were␈α∞new.␈α
 Towards␈α∞the␈α∞end␈α∞of␈α
the␈α∞initial␈α∞period,␈α∞it␈α
became
␈↓ ↓H␈↓clear␈αthat␈αthis␈αcombination␈α
of␈αideas␈αmade␈αan␈α
elegant␈αmathematical
␈↓ ↓H␈↓system␈α_as␈α→well␈α_as␈α_a␈α→practical␈α_programming␈α→language.␈α_ Then
␈↓ ↓H␈↓mathematical␈α∩neatness␈α∩became␈α∩a␈α∩goal␈α∩and␈α∩led␈α∩to␈α∪pruning␈α∩some
␈↓ ↓H␈↓features␈αfrom␈αthe␈αcore␈αof␈αthe␈αlanguage.␈α This␈αwas␈αpartly␈αmotivated
␈↓ ↓H␈↓by␈αesthetic␈αreasons␈αand␈αpartly␈αby␈αthe␈αbelief␈αthat␈αit␈αwould␈α
be␈αeasier
␈↓ ↓H␈↓to␈α
devise␈αtechniques␈α
for␈αproving␈α
programs␈αcorrect␈α
if␈α
the␈αsemantics
␈↓ ↓H␈↓were␈α∞compact␈α
and␈α∞without␈α∞exceptions.␈α
 The␈α∞results␈α∞of␈α
(Cartwright
␈↓ ↓H␈↓1976)␈α
and␈α(Cartwright␈α
and␈αMcCarthy␈α
1978),␈αwhich␈α
show␈αthat␈α
LISP
␈↓ ↓H␈↓programs␈α∩can␈α⊃be␈α∩interpreted␈α⊃as␈α∩sentences␈α⊃and␈α∩schemata␈α∩of␈α⊃first
␈↓ ↓H␈↓order␈αlogic,␈αprovide␈αnew␈αconfirmation␈αof␈αthe␈αoriginal␈αintuition␈αthat
␈↓ ↓H␈↓logical neatness would pay off.

␈↓ ↓H␈↓2. LISP prehistory - Summer 1956 through Summer 1958.

␈↓ ↓H␈↓␈↓ α_My␈α⊗desire␈α⊗for␈α⊗an␈α∃algebraic␈α⊗list␈α⊗processing␈α⊗language␈α∃for
␈↓ ↓H␈↓artificial␈α
intelligence␈α∞work␈α
on␈α∞the␈α
IBM␈α
704␈α∞computer␈α
arose␈α∞in␈α
the
␈↓ ↓H␈↓summer␈α∞of␈α
1956␈α∞during␈α∞the␈α
Dartmouth␈α∞Summer␈α∞Research␈α
Project
␈↓ ↓H␈↓on␈αArtificial␈αIntelligence␈α
which␈αwas␈αthe␈α
first␈αorganized␈αstudy␈αof␈α
AI.
␈↓ ↓H␈↓During␈α
this␈α
meeting,␈α
Newell,␈α
Shaw␈α
and␈α
Simon␈α
described␈α
IPL␈α∞2,␈α
a
␈↓ ↓H␈↓list␈α_processing␈α↔language␈α_for␈α↔Rand␈α_Corporation's␈α↔JOHNNIAC



␈↓ ↓H␈↓computer␈α
in␈α
which␈α
they␈α
implemented␈α
their␈α
Logic␈αTheorist␈α
program.
␈↓ ↓H␈↓There␈α
was␈α
little␈αtemptation␈α
to␈α
copy␈α
IPL,␈αbecause␈α
its␈α
form␈αwas␈α
based
␈↓ ↓H␈↓on␈α∞a␈α∞JOHNNIAC␈α∞loader␈α∞that␈α∞happened␈α∞to␈α∞be␈α∞available␈α∞to␈α
them,
␈↓ ↓H␈↓and␈α
because␈α
the␈α
FORTRAN␈α
idea␈α
of␈α
writing␈α
programs␈α
algebraically
␈↓ ↓H␈↓was␈α≤attractive.␈α≤ It␈α≠was␈α≤immediately␈α≤apparent␈α≤that␈α≠arbitrary
␈↓ ↓H␈↓subexpressions␈α_of␈α↔symbolic␈α_expressions␈α↔could␈α_be␈α_obtained␈α↔by
␈↓ ↓H␈↓composing␈α
the␈α
functions␈α
that␈α
extract␈α
immediate␈α
subexpressions,␈α
and
␈↓ ↓H␈↓this seemed reason enough to go to an algebraic language.

␈↓ ↓H␈↓␈↓ α_There␈α∂were␈α∂two␈α∂motivations␈α∂for␈α∂developing␈α∂a␈α∂language␈α∂for
␈↓ ↓H␈↓the␈αIBM␈α704.␈α First,␈αIBM␈αhad␈αgenerously␈αundertaken␈αto␈αestablish␈α
a
␈↓ ↓H␈↓New␈α⊗England␈α⊗Computation␈α↔Center␈α⊗at␈α⊗M.I.T.,␈α↔and␈α⊗Dartmouth
␈↓ ↓H␈↓would␈αbe␈αable␈αto␈αuse␈αit.␈α Second,␈αIBM␈αwas␈αundertaking␈α
to␈αdevelop
␈↓ ↓H␈↓a␈α∞program␈α∞for␈α∂proving␈α∞theorems␈α∞in␈α∂plane␈α∞geometry␈α∞(based␈α∂on␈α∞an
␈↓ ↓H␈↓idea␈α
of␈α
Marvin␈α
Minsky's),␈α
and␈α
I␈α
was␈α
to␈α
serve␈α
as␈α
a␈α
consultant␈α
to␈α
that
␈↓ ↓H␈↓project.␈α∀ At␈α∀the␈α∀time,␈α∀IBM␈α∃looked␈α∀like␈α∀a␈α∀good␈α∀bet␈α∃to␈α∀pursue
␈↓ ↓H␈↓artificial␈αintelligence␈αresearch␈αvigorously,␈αand␈αfurther␈αprojects␈αwere
␈↓ ↓H␈↓expected.␈α It␈αwas␈αnot␈α
then␈αclear␈αwhether␈αIBM's␈αFORTRAN␈α
project
␈↓ ↓H␈↓would␈α⊗lead␈α⊗to␈α⊗a␈α∃language␈α⊗within␈α⊗which␈α⊗list␈α⊗processing␈α∃could
␈↓ ↓H␈↓conveniently␈α∞be␈α∞carried␈α∞out␈α∞or␈α
whether␈α∞a␈α∞new␈α∞language␈α∞would␈α
be
␈↓ ↓H␈↓required.␈α
 However,␈α
many␈αconsiderations␈α
were␈α
independent␈α
of␈αthis
␈↓ ↓H␈↓decision.

␈↓ ↓H␈↓␈↓ α_Apart␈α⊃from␈α⊃consulting␈α⊃on␈α⊃the␈α⊃geometry␈α⊃program,␈α∩my␈α⊃own
␈↓ ↓H␈↓research␈α
in␈α
artificial␈α
intelligence␈α
was␈α
proceeding␈α
along␈α
the␈α
lines␈α
that
␈↓ ↓H␈↓led␈α
to␈αthe␈α
Advice␈αTaker␈α
proposal␈αin␈α
1958␈α(McCarthy␈α
1959).␈α This
␈↓ ↓H␈↓involved␈αrepresenting␈αinformation␈αabout␈αthe␈αworld␈αby␈α
sentences␈αin
␈↓ ↓H␈↓a␈α∂suitable␈α⊂formal␈α∂language␈α⊂and␈α∂a␈α⊂reasoning␈α∂program␈α⊂that␈α∂would
␈↓ ↓H␈↓decide␈α∞what␈α
to␈α∞do␈α∞by␈α
drawing␈α∞logical␈α∞consequences.␈α
 Representing
␈↓ ↓H␈↓sentences␈α
by␈α
list␈α
structure␈α
seemed␈α
appropriate␈α
-␈α
it␈α
still␈α
is␈α
-␈α
and␈α
a␈α
list
␈↓ ↓H␈↓processing␈α
language␈α
also␈αseemed␈α
appropriate␈α
for␈α
programming␈αthe
␈↓ ↓H␈↓operations involved in deduction - and still is.

␈↓ ↓H␈↓␈↓ α_This␈α⊃internal␈α⊃representation␈α⊃of␈α⊃symbolic␈α∩information␈α⊃gives
␈↓ ↓H␈↓up␈α↔the␈α↔familiar␈α↔infix␈α↔notations␈α↔in␈α↔favor␈α↔of␈α↔a␈α↔notation␈α⊗that
␈↓ ↓H␈↓simplifies␈α∂the␈α∂task␈α∂of␈α∂programming␈α∂the␈α∂substantive␈α∂computations,
␈↓ ↓H␈↓e.g.␈α∞logical␈α
deduction␈α∞or␈α
algebraic␈α∞simplification,␈α∞differentiation␈α
or
␈↓ ↓H␈↓integration.␈α⊗ If␈α∃customary␈α⊗notations␈α∃are␈α⊗to␈α∃be␈α⊗used␈α∃externally,
␈↓ ↓H␈↓translation␈α∞programs␈α
must␈α∞be␈α
written.␈α∞ Thus␈α
most␈α∞LISP␈α
programs
␈↓ ↓H␈↓use␈α
a␈α
prefix␈α
notation␈α
for␈α
algebraic␈α
expressions,␈α
because␈αthey␈α
usually
␈↓ ↓H␈↓must␈α⊂determine␈α⊂the␈α⊂main␈α⊂connective␈α⊂before␈α⊂deciding␈α⊂what␈α⊂to␈α⊂do
␈↓ ↓H␈↓next.␈α∃ In␈α∃this␈α∃LISP␈α⊗differs␈α∃from␈α∃almost␈α∃every␈α⊗other␈α∃symbolic
␈↓ ↓H␈↓computation␈α⊗system.␈α⊗ COMIT,␈α⊗FORMAC,␈α⊗and␈α⊗Formula␈α∃Algol
␈↓ ↓H␈↓programs␈α∃all␈α∃express␈α⊗the␈α∃computations␈α∃as␈α∃operations␈α⊗on␈α∃some
␈↓ ↓H␈↓approximation␈α≤to␈α≠the␈α≤customary␈α≠printed␈α≤forms␈α≤of␈α≠symbolic
␈↓ ↓H␈↓expressions.␈α SNOBOL␈αoperates␈αon␈αcharacter␈αstrings␈αbut␈αis␈αneutral
␈↓ ↓H␈↓on␈α≡how␈α∨character␈α≡strings␈α≡are␈α∨used␈α≡to␈α∨represent␈α≡symbolic
␈↓ ↓H␈↓information.␈α
 This␈αfeature␈α
probably␈α
accounts␈αfor␈α
LISP's␈α
success␈αin
␈↓ ↓H␈↓competition␈α∂with␈α∂these␈α∂languages,␈α∂especially␈α∂when␈α∂large␈α∂programs
␈↓ ↓H␈↓have␈α
to␈α
be␈αwritten.␈α
 The␈α
advantage␈α
is␈αlike␈α
that␈α
of␈αbinary␈α
computers
␈↓ ↓H␈↓over decimal - but larger.

␈↓ ↓H␈↓(In␈α
the␈α
late␈α∞1950s,␈α
neat␈α
output␈α∞and␈α
convenient␈α
input␈α∞notation␈α
was
␈↓ ↓H␈↓not␈α⊂generally␈α∂considered␈α⊂important.␈α∂ Programs␈α⊂to␈α∂do␈α⊂the␈α⊂kind␈α∂of
␈↓ ↓H␈↓input␈α_and␈α_output␈α_customary␈α↔today␈α_wouldn't␈α_even␈α_fit␈α_in␈α↔the
␈↓ ↓H␈↓memories␈α_available␈α_at␈α_that␈α_time.␈α_ Moreover,␈α_keypunches␈α↔and
␈↓ ↓H␈↓printers with adequate character sets didn't exist).

␈↓ ↓H␈↓␈↓ α_The␈α∞first␈α∞problem␈α∞was␈α∞how␈α∞to␈α∞do␈α∞list␈α∞structure␈α∞in␈α∞the␈α∞IBM
␈↓ ↓H␈↓704.␈α This␈αcomputer␈αhas␈αa␈α36␈αbit␈αword,␈αand␈αtwo␈α15␈αbit␈αparts,␈α
called
␈↓ ↓H␈↓the␈α≡address␈α≡and␈α∨decrement,␈α≡were␈α≡distinguished␈α∨by␈α≡special
␈↓ ↓H␈↓instructions␈αfor␈αmoving␈αtheir␈αcontents␈αto␈αand␈αfrom␈αthe␈α15␈αbit␈α
index
␈↓ ↓H␈↓registers.␈α
 The␈α
address␈α
of␈α
the␈α
machine␈α
was␈α
15␈α
bits,␈α
so␈α
it␈α
was␈αclear



␈↓ ↓H␈↓that␈α⊃list␈α⊃structure␈α⊃should␈α⊃use␈α⊂15␈α⊃bit␈α⊃pointers.␈α⊃ Therefore,␈α⊃it␈α⊂was
␈↓ ↓H␈↓natural␈α∞to␈α∞consider␈α∞the␈α∞word␈α∂as␈α∞divided␈α∞into␈α∞4␈α∞parts,␈α∂the␈α∞address
␈↓ ↓H␈↓part,␈αthe␈α
decrement␈αpart,␈α
the␈αprefix␈α
part␈αand␈α
the␈αtag␈α
part.␈α The␈α
last
␈↓ ↓H␈↓two␈α⊂were␈α⊂three␈α⊂bits␈α⊂each␈α⊃and␈α⊂separated␈α⊂from␈α⊂each␈α⊂other␈α⊃by␈α⊂the
␈↓ ↓H␈↓decrement␈α
so␈α∞that␈α
they␈α
could␈α∞not␈α
be␈α
easily␈α∞combined␈α
into␈α∞a␈α
single
␈↓ ↓H␈↓six bit part.

␈↓ ↓H␈↓␈↓ α_At␈αthis␈αpoint␈αthere␈αwas␈αsome␈αindecision␈αabout␈αwhat␈αthe␈α
basic
␈↓ ↓H␈↓operators␈α
should␈α
be,␈α
because␈α
the␈α
operation␈α
of␈α
extracting␈α
a␈α∞part␈α
of
␈↓ ↓H␈↓the␈αword␈αby␈αmasking␈αwas␈αconsidered␈αseparately␈αfrom␈αthe␈αoperation
␈↓ ↓H␈↓of␈α∂taking␈α∂the␈α∂contents␈α∂of␈α∂a␈α∞word␈α∂in␈α∂memory␈α∂as␈α∂a␈α∂function␈α∂of␈α∞its
␈↓ ↓H␈↓address.␈α∃ At␈α∃the␈α∃time,␈α∃it␈α∀seemed␈α∃dubious␈α∃to␈α∃regard␈α∃the␈α∀latter
␈↓ ↓H␈↓operation␈αas␈αa␈α
function,␈αsince␈αits␈αvalue␈α
depended␈αon␈αthe␈αcontents␈α
of
␈↓ ↓H␈↓memory␈α∞at␈α∞the␈α∞time␈α∞the␈α∞operation␈α∞was␈α∞performed,␈α∞so␈α∞it␈α∂didn't␈α∞act
␈↓ ↓H␈↓like␈α
a␈α∞proper␈α
mathematical␈α
function.␈α∞ However,␈α
the␈α∞advantages␈α
of
␈↓ ↓H␈↓treating␈αit␈α
grammatically␈αas␈αa␈α
function␈αso␈αthat␈α
it␈αcould␈αbe␈α
composed
␈↓ ↓H␈↓were also apparent.

␈↓ ↓H␈↓␈↓ α_Therefore,␈α⊃the␈α∩initially␈α⊃proposed␈α∩set␈α⊃of␈α∩functions␈α⊃included
␈↓ ↓H␈↓␈↓↓cwr␈↓,␈α
standing␈α
for␈α
"Contents␈α
of␈αthe␈α
Word␈α
in␈α
Register␈α
number"␈αand
␈↓ ↓H␈↓four␈α⊃functions␈α⊃that␈α⊂extracted␈α⊃the␈α⊃parts␈α⊂of␈α⊃the␈α⊃word␈α⊃and␈α⊂shifted
␈↓ ↓H␈↓them␈α⊗to␈α↔a␈α⊗standard␈α↔position␈α⊗at␈α↔the␈α⊗right␈α↔of␈α⊗the␈α↔word.␈α⊗ An
␈↓ ↓H␈↓additional␈α
function␈α∞of␈α
three␈α∞arguments␈α
that␈α∞would␈α
also␈α∞extract␈α
an
␈↓ ↓H␈↓arbitrary bit sequence was also proposed.

␈↓ ↓H␈↓␈↓ α_It␈α↔was␈α↔soon␈α↔noticed␈α↔that␈α↔extraction␈α↔of␈α↔a␈α⊗subexpression
␈↓ ↓H␈↓involved␈α
composing␈α
the␈α
extraction␈α
of␈α
the␈α
address␈α
part␈α
with␈α
␈↓↓cwr␈↓␈α
and
␈↓ ↓H␈↓that␈αcontinuing␈αalong␈αthe␈αlist␈αinvolved␈αcomposing␈αthe␈αextraction␈αof
␈↓ ↓H␈↓the␈α⊗decrement␈α⊗part␈α⊗with␈α⊗␈↓↓cwr␈↓.␈α⊗ Therefore,␈α⊗the␈α⊗compounds␈α⊗␈↓↓car␈↓,
␈↓ ↓H␈↓standing␈α∂for␈α∂"Contents␈α∂of␈α⊂the␈α∂Address␈α∂part␈α∂of␈α⊂Register␈α∂number",
␈↓ ↓H␈↓and␈αits␈αanalogs␈α␈↓↓cdr␈↓,␈α␈↓↓cpr␈↓,␈αand␈α␈↓↓ctr␈↓␈αwere␈αdefined.␈α The␈αmotivation␈αfor
␈↓ ↓H␈↓implementing␈α∃␈↓↓car␈↓␈α∃and␈α⊗␈↓↓cdr␈↓␈α∃separately␈α∃was␈α∃strengthened␈α⊗by␈α∃the
␈↓ ↓H␈↓vulgar␈α∩fact␈α∩that␈α∩the␈α∩IBM␈α∩704␈α∩had␈α∩instructions␈α∩(connected␈α∩with
␈↓ ↓H␈↓indexing)␈α_that␈α↔made␈α_these␈α_operations␈α↔easy␈α_to␈α_implement.␈α↔ A
␈↓ ↓H␈↓construct␈α
operation␈α
for␈α
taking␈α
a␈α
word␈α
off␈α
the␈α
free␈α
storage␈α
list␈α
and
␈↓ ↓H␈↓stuffing␈α⊃it␈α⊃with␈α⊃given␈α⊃contents␈α⊃was␈α⊃also␈α⊃obviously␈α⊃required.␈α⊃ At
␈↓ ↓H␈↓some␈α
point␈α
a␈α
␈↓↓cons(a,d,p,t)␈↓␈α
was␈α
defined,␈α
but␈α
it␈α
was␈α
regarded␈α
as␈αa
␈↓ ↓H␈↓subroutine␈α⊂and␈α⊂not␈α⊂as␈α⊂a␈α⊂function␈α⊂with␈α⊂a␈α⊂value.␈α⊂ This␈α⊂work␈α∂was
␈↓ ↓H␈↓done␈αat␈αDartmouth,␈αbut␈αnot␈αon␈αa␈αcomputer,␈αsince␈αthe␈αNew␈αEngland
␈↓ ↓H␈↓Computation␈α∞Center␈α∞was␈α∞not␈α∞expected␈α∞to␈α∞receive␈α∞its␈α∞IBM␈α∞704␈α
for
␈↓ ↓H␈↓another year.

␈↓ ↓H␈↓␈↓ α_In␈α
connection␈α
with␈α
IBM's␈α
plane␈α
geometry␈α∞project,␈α
Nathaniel
␈↓ ↓H␈↓Rochester␈α∪and␈α∪Herbert␈α∀Gelernter␈α∪(on␈α∪the␈α∪advice␈α∀of␈α∪McCarthy)
␈↓ ↓H␈↓decided␈α#to␈α"implement␈α#a␈α"list␈α#processing␈α#language␈α"within
␈↓ ↓H␈↓FORTRAN,␈α∩because␈α∩this␈α∪seemed␈α∩to␈α∩the␈α∪the␈α∩easiest␈α∩way␈α∪to␈α∩get
␈↓ ↓H␈↓started,␈α
and,␈α
in␈α
those␈α
days,␈α
writing␈α
a␈α
compiler␈α
for␈α
a␈α
new␈αlanguage
␈↓ ↓H␈↓was␈αbelieved␈αto␈αtake␈α
many␈αman-years.␈α This␈αwork␈α
was␈αundertaken
␈↓ ↓H␈↓by␈α
Herbert␈α
Gelernter␈α
and␈α
Carl␈α
Gerberich␈α
at␈α
IBM␈α
and␈α
led␈α
to␈α
FLPL,
␈↓ ↓H␈↓standing␈αfor␈αFORTRAN␈αList␈αProcessing␈αLanguage.␈α Gelernter␈α
and
␈↓ ↓H␈↓Gerberich␈α∃noticed␈α∃that␈α∀␈↓↓cons␈↓␈α∃should␈α∃be␈α∀a␈α∃function,␈α∃not␈α∃just␈α∀a
␈↓ ↓H␈↓subroutine,␈α∞and␈α∞that␈α
its␈α∞value␈α∞should␈α∞be␈α
the␈α∞location␈α∞of␈α∞the␈α
word
␈↓ ↓H␈↓that␈αhad␈αbeen␈αtaken␈αfrom␈αthe␈αfree␈αstorage␈αlist.␈α This␈αpermitted␈α
new
␈↓ ↓H␈↓expressions␈α≥to␈α≥be␈α≥constructed␈α≥out␈α≥of␈α≥subsubexpressions␈α≤by
␈↓ ↓H␈↓composing occurrences of ␈↓↓cons␈↓.

␈↓ ↓H␈↓␈↓ α_While␈α∞expressions␈α∞could␈α∞be␈α
handled␈α∞easily␈α∞in␈α∞FLPL,␈α∞and␈α
it
␈↓ ↓H␈↓was␈α⊃used␈α⊃successfully␈α⊃for␈α⊃the␈α⊃Geometry␈α⊃program,␈α⊃it␈α⊃had␈α⊃neither
␈↓ ↓H␈↓conditional␈αexpressions␈αnor␈αrecursion,␈α
and␈αerasing␈αlist␈αstructure␈α
was
␈↓ ↓H␈↓handled explicitly by the program.

␈↓ ↓H␈↓␈↓ α_I␈αinvented␈α
conditional␈αexpressions␈α
in␈αconnection␈α
with␈αa␈αset␈α
of
␈↓ ↓H␈↓chess␈αlegal␈αmove␈αroutines␈αI␈αwrote␈αin␈αFORTRAN␈αfor␈αthe␈α
IBM␈α704



␈↓ ↓H␈↓at␈α~M.I.T.␈α~during␈α~1957-58.␈α~ This␈α~program␈α~did␈α~not␈α≠use␈α~list
␈↓ ↓H␈↓processing.␈α∀ The␈α∃IF␈α∀statement␈α∀provided␈α∃in␈α∀FORTRAN␈α∃1␈α∀and
␈↓ ↓H␈↓FORTRAN␈α⊃2␈α⊃was␈α⊂very␈α⊃awkward␈α⊃to␈α⊃use,␈α⊂and␈α⊃it␈α⊃was␈α⊃natural␈α⊂to
␈↓ ↓H␈↓invent␈α∃a␈α∀function␈α∃XIF(M,N1,N2)␈α∀whose␈α∃value␈α∀was␈α∃N1␈α∃or␈α∀N2
␈↓ ↓H␈↓according␈α∪to␈α∩whether␈α∪the␈α∪expression␈α∩M␈α∪was␈α∩zero␈α∪or␈α∪not.␈α∩ The
␈↓ ↓H␈↓function␈α⊗shortened␈α⊗many␈α↔programs␈α⊗and␈α⊗made␈α⊗them␈α↔easier␈α⊗to
␈↓ ↓H␈↓understand,␈α∪but␈α∪it␈α∪had␈α∪to␈α∩be␈α∪used␈α∪sparingly,␈α∪because␈α∪all␈α∩three
␈↓ ↓H␈↓arguments␈αhad␈αto␈αbe␈αevaluated␈αbefore␈αXIF␈αwas␈αentered,␈α
since␈αXIF
␈↓ ↓H␈↓was␈α
called␈α
as␈α
an␈α
ordinary␈α
FORTRAN␈α
function␈α
though␈α
written␈α
in
␈↓ ↓H␈↓machine␈α~language.␈α≠ This␈α~led␈α≠to␈α~the␈α≠invention␈α~of␈α≠the␈α~true
␈↓ ↓H␈↓conditional␈α⊃expression␈α⊃which␈α⊃evaluates␈α⊃only␈α⊃one␈α⊃of␈α⊃N1␈α∩and␈α⊃N2
␈↓ ↓H␈↓according␈α⊃to␈α∩whether␈α⊃M␈α∩is␈α⊃true␈α∩or␈α⊃false␈α∩and␈α⊃to␈α∩a␈α⊃desire␈α∩for␈α⊃a
␈↓ ↓H␈↓programming language that would allow its use.

␈↓ ↓H␈↓␈↓ α_A␈α∃paper␈α⊗defining␈α∃conditional␈α∃expressions␈α⊗and␈α∃proposing
␈↓ ↓H␈↓their␈αuse␈αin␈αAlgol␈αwas␈αsent␈αto␈αthe␈α␈↓↓Communications␈αof␈αthe␈αACM␈↓␈αbut
␈↓ ↓H␈↓was␈αarbitrarily␈α
demoted␈αto␈α
a␈αletter␈α
to␈αthe␈α
editor,␈αbecause␈α
it␈αwas␈α
very
␈↓ ↓H␈↓short.

␈↓ ↓H␈↓␈↓ α_I␈α_spent␈α_the␈α_summer␈α↔of␈α_1958␈α_at␈α_the␈α_IBM␈α↔Information
␈↓ ↓H␈↓Research␈αDepartment␈αat␈αthe␈αinvitation␈αof␈αNathaniel␈αRochester␈αand
␈↓ ↓H␈↓chose␈αdifferentiating␈αalgebraic␈αexpressions␈αas␈αa␈αsample␈αproblem.␈α It
␈↓ ↓H␈↓led to the following innovations beyond FLPL:

␈↓ ↓H␈↓␈↓ α_a.␈α∩Writing␈α⊃recursive␈α∩function␈α⊃definitions␈α∩using␈α⊃conditional
␈↓ ↓H␈↓expressions.␈α The␈α
idea␈αof␈α
differentiation␈αis␈α
obviously␈αrecursive,␈α
and
␈↓ ↓H␈↓conditional␈α∂expressions␈α∂allowed␈α∂combining␈α∂the␈α∂cases␈α∂into␈α∂a␈α∞single
␈↓ ↓H␈↓formula.

␈↓ ↓H␈↓␈↓ α_b.␈αThe␈α␈↓↓maplist␈↓␈αfunction␈αthat␈αforms␈αa␈αlist␈αof␈αapplications␈αof␈αa
␈↓ ↓H␈↓functional␈α
argument␈α
to␈α
the␈α
elements␈α
of␈α
a␈α
list.␈α
 This␈α∞was␈α
obviously
␈↓ ↓H␈↓wanted␈α
for␈α
differentiating␈α
sums␈αof␈α
arbitrarily␈α
many␈α
terms,␈αand␈α
with
␈↓ ↓H␈↓a␈α~slight␈α→modification,␈α~it␈α→could␈α~be␈α→applied␈α~to␈α→differentiating
␈↓ ↓H␈↓products.  (The original form was what is now called ␈↓↓mapcar␈↓).

␈↓ ↓H␈↓␈↓ α_c.␈α∂To␈α∞use␈α∂functions␈α∞as␈α∂arguments,␈α∞one␈α∂needs␈α∞a␈α∂notation␈α∞for
␈↓ ↓H␈↓functions,␈α∞and␈α∞it␈α∞seemed␈α∞natural␈α∞to␈α∞use␈α∞the␈α∞λ-notation␈α∞of␈α
Church
␈↓ ↓H␈↓(1941).␈α∀ I␈α∀didn't␈α∀understand␈α∀the␈α∀rest␈α∀of␈α∀his␈α∀book,␈α∀so␈α∃I␈α∀wasn't
␈↓ ↓H␈↓tempted␈α∃to␈α∀try␈α∃to␈α∀implement␈α∃his␈α∀more␈α∃general␈α∃mechanism␈α∀for
␈↓ ↓H␈↓defining␈α∞functions.␈α
 Church␈α∞used␈α
higher␈α∞order␈α∞functionals␈α
instead
␈↓ ↓H␈↓of␈α
using␈α
conditional␈α
expressions.␈α
 Conditional␈α
expressions␈α
are␈α
much
␈↓ ↓H␈↓more readily implemented on computers.

␈↓ ↓H␈↓␈↓ α_d.␈α_The␈α_recursive␈α_definition␈α_of␈α_differentiation␈α_made␈α_no
␈↓ ↓H␈↓provision␈αfor␈αerasure␈αof␈αabandoned␈αlist␈αstructure.␈α No␈αsolution␈αwas
␈↓ ↓H␈↓apparent␈α∪at␈α∩the␈α∪time,␈α∩but␈α∪the␈α∩idea␈α∪of␈α∩complicating␈α∪the␈α∩elegant
␈↓ ↓H␈↓definition␈α
of␈α
differentiation␈α
with␈α
explicit␈α
erasure␈α
was␈α
unattractive.
␈↓ ↓H␈↓Needless␈α
to␈α
say,␈αthe␈α
point␈α
of␈α
the␈αexercise␈α
was␈α
not␈αthe␈α
differentiation
␈↓ ↓H␈↓program␈α∪itself,␈α∩several␈α∪of␈α∩which␈α∪had␈α∩already␈α∪been␈α∪written,␈α∩but
␈↓ ↓H␈↓rather␈α≥clarification␈α≤of␈α≥the␈α≤operations␈α≥involved␈α≥in␈α≤symbolic
␈↓ ↓H␈↓computation.

␈↓ ↓H␈↓␈↓ α_In␈α
fact,␈α
the␈α
differentiation␈α
program␈α
was␈α
not␈α
implemented␈α
that
␈↓ ↓H␈↓summer,␈α∞because␈α
FLPL␈α∞allows␈α
neither␈α∞conditional␈α∞expressions␈α
nor
␈↓ ↓H␈↓recursive␈α⊂use␈α⊂of␈α⊂subroutines.␈α⊂ At␈α∂this␈α⊂point␈α⊂a␈α⊂new␈α⊂language␈α∂was
␈↓ ↓H␈↓necessary,␈αsince␈αit␈αwas␈αvery␈αdifficult␈αboth␈αtechnically␈αand␈αpolitically
␈↓ ↓H␈↓to␈α∩tinker␈α∩with␈α∪Fortran,␈α∩and␈α∩neither␈α∩conditional␈α∪expressions␈α∩nor
␈↓ ↓H␈↓recursion␈α⊃could␈α⊃be␈α∩implemented␈α⊃with␈α⊃machine␈α∩language␈α⊃Fortran
␈↓ ↓H␈↓functions␈α⊂-␈α⊂not␈α⊂even␈α⊂with␈α⊂"functions"␈α⊂that␈α⊂modify␈α⊂the␈α⊃code␈α⊂that
␈↓ ↓H␈↓calls␈αthem.␈α Moreover,␈αthe␈αIBM␈αgroup␈αseemed␈αsatisfied␈αwith␈αFLPL
␈↓ ↓H␈↓as␈α∃it␈α∀was␈α∃and␈α∀did␈α∃not␈α∀want␈α∃to␈α∀make␈α∃the␈α∀vaguely␈α∃stated␈α∀but
␈↓ ↓H␈↓obviously␈αdrastic␈αchanges␈αrequired␈αto␈αallow␈αconditional␈αexpressions
␈↓ ↓H␈↓and␈α∞recursive␈α
definition.␈α∞ As␈α∞I␈α
recall,␈α∞they␈α
argued␈α∞that␈α∞these␈α
were
␈↓ ↓H␈↓unnecessary.



␈↓ ↓H␈↓2. The implementation of LISP.

␈↓ ↓H␈↓␈↓ α_In␈α→the␈α→Fall␈α→of␈α→1958,␈α→I␈α→became␈α→Assistant␈α→Professor␈α_of
␈↓ ↓H␈↓Communication␈α⊃Sciences␈α⊃(in␈α⊃the␈α⊃EE␈α⊃Department)␈α⊃at␈α⊃M.I.T.,␈α⊂and
␈↓ ↓H␈↓Marvin␈α⊃Minsky␈α⊂(then␈α⊃an␈α⊃assistant␈α⊂professor␈α⊃in␈α⊃the␈α⊂Mathematics
␈↓ ↓H␈↓Department)␈αand␈αI␈αstarted␈αthe␈αM.I.T.␈αArtificial␈αIntelligence␈αProject.
␈↓ ↓H␈↓The␈α
Project␈α∞was␈α
supported␈α∞by␈α
the␈α∞M.I.T.␈α
Research␈α∞Laboratory␈α
of
␈↓ ↓H␈↓Electronics␈α∩which␈α∪had␈α∩a␈α∪contract␈α∩from␈α∪the␈α∩armed␈α∪services␈α∩that
␈↓ ↓H␈↓permitted␈αgreat␈αfreedom␈αto␈αthe␈αDirector,␈αProfessor␈αJerome␈αWiesner,
␈↓ ↓H␈↓in␈α
initiating␈α
new␈α
projects␈α
that␈α
seemed␈α
to␈α
him␈α
of␈α∞scientific␈α
interest.
␈↓ ↓H␈↓No␈αwritten␈αproposal␈αwas␈αever␈αmade.␈α When␈αWiesner␈αasked␈αMinsky
␈↓ ↓H␈↓and␈αme␈αwhat␈αwe␈αneeded␈αfor␈α
the␈αproject,␈αwe␈αasked␈αfor␈αa␈α
room,␈αtwo
␈↓ ↓H␈↓programmers,␈αa␈αsecretary␈αand␈αa␈αkeypunch,␈αand␈αhe␈αasked␈αus␈αto␈αalso
␈↓ ↓H␈↓undertake␈αthe␈αsupervision␈αof␈αsome␈αof␈αthe␈αsix␈αmathematics␈αgraduate
␈↓ ↓H␈↓students that R.L.E. had undertaken to support.

␈↓ ↓H␈↓␈↓ α_The␈α∃implementation␈α⊗of␈α∃LISP␈α∃began␈α⊗in␈α∃Fall␈α⊗1958.␈α∃ The
␈↓ ↓H␈↓original␈αidea␈αwas␈αto␈αproduce␈αa␈αcompiler,␈αbut␈αthis␈αwas␈α
considered␈αa
␈↓ ↓H␈↓major␈αundertaking,␈αand␈αwe␈αneeded␈αsome␈αexperimenting␈αin␈αorder␈αto
␈↓ ↓H␈↓get␈α⊂good␈α⊂conventions␈α⊂for␈α⊂subroutine␈α⊂linking,␈α⊂stack␈α⊃handling␈α⊂and
␈↓ ↓H␈↓erasure.␈α≡ Therefore,␈α≡we␈α≡started␈α≡by␈α∨hand-compiling␈α≡various
␈↓ ↓H␈↓functions␈α_into␈α→assembly␈α_language␈α→and␈α_writing␈α→subroutines␈α_to
␈↓ ↓H␈↓provide␈α
a␈α
LISP␈α∞"environment".␈α
 These␈α
included␈α
programs␈α∞to␈α
read
␈↓ ↓H␈↓and␈α
print␈αlist␈α
structure.␈α I␈α
can't␈α
now␈αremember␈α
whether␈αthe␈α
decision
␈↓ ↓H␈↓to␈α
use␈α
parenthesized␈αlist␈α
notation␈α
as␈α
the␈αexternal␈α
form␈α
of␈αLISP␈α
data
␈↓ ↓H␈↓was␈α
made␈α
then␈α
or␈α
whether␈αit␈α
had␈α
already␈α
been␈α
used␈α
in␈αdiscussing
␈↓ ↓H␈↓the paper differentiation program.

␈↓ ↓H␈↓␈↓ α_The␈α∃programs␈α∃to␈α∃be␈α∃hand-compiled␈α∃were␈α∃written␈α∃in␈α∃an
␈↓ ↓H␈↓informal␈α~notation␈α~called␈α→M-expressions␈α~intended␈α~to␈α→resemble
␈↓ ↓H␈↓FORTRAN␈α≤as␈α≤much␈α≠as␈α≤possible.␈α≤ Besides␈α≠FORTRAN-like
␈↓ ↓H␈↓assignment␈αstatements␈αand␈α␈↓αgo to␈↓s,␈αthe␈αlanguage␈αallowed␈αconditional
␈↓ ↓H␈↓expressions␈α∂and␈α∂the␈α∂basic␈α∂functions␈α∂of␈α∂LISP.␈α∂ Allowing␈α∂recursive
␈↓ ↓H␈↓function␈α⊂definitions␈α⊂required␈α⊂no␈α⊂new␈α⊂notation␈α⊂from␈α⊂the␈α⊂function
␈↓ ↓H␈↓definitions␈α⊃allowed␈α⊃in␈α⊃FORTRAN␈α∩I␈α⊃-␈α⊃only␈α⊃the␈α⊃removal␈α∩of␈α⊃the
␈↓ ↓H␈↓restriction␈α∩-␈α∪as␈α∩I␈α∪recall,␈α∩unstated␈α∩in␈α∪the␈α∩FORTRAN␈α∪manual␈α∩-
␈↓ ↓H␈↓forbidding␈α≠recursive␈α≠definitions.␈α≠ The␈α≠M-notation␈α≠also␈α≠used
␈↓ ↓H␈↓brackets␈α→instead␈α_of␈α→parentheses␈α→to␈α_enclose␈α→the␈α→arguments␈α_of
␈↓ ↓H␈↓functions␈α
in␈α
order␈α
to␈α
reserve␈α
parentheses␈α
for␈α
list-structure␈α
constants.
␈↓ ↓H␈↓It␈α⊂was␈α∂intended␈α⊂to␈α⊂compile␈α∂from␈α⊂some␈α∂approximation␈α⊂to␈α⊂the␈α∂M-
␈↓ ↓H␈↓notation,␈α∀but␈α∀the␈α∀M-notation␈α∪was␈α∀never␈α∀fully␈α∀defined,␈α∪because
␈↓ ↓H␈↓representing␈α⊃LISP␈α⊂functions␈α⊃by␈α⊂LISP␈α⊃lists␈α⊂became␈α⊃the␈α⊂dominant
␈↓ ↓H␈↓programming␈α
language␈α
when␈α
the␈α
interpreter␈α
later␈αbecame␈α
available.
␈↓ ↓H␈↓A␈αmachine␈αreadable␈αM-notation␈αwould␈αhave␈αrequired␈αredefinition,
␈↓ ↓H␈↓because␈α$the␈α$pencil-and-paper␈α$M-notation␈α$used␈α#characters
␈↓ ↓H␈↓unavailable on the IBM 026 key punch.

␈↓ ↓H␈↓␈↓ α_The␈α↔READ␈α↔and␈α↔PRINT␈α⊗programs␈α↔induced␈α↔a␈α↔␈↓↓de␈α⊗facto␈↓
␈↓ ↓H␈↓standard␈α#external␈α#notation␈α#for␈α#symbolic␈α#information,␈α#e.g.
␈↓ ↓H␈↓representing␈α)␈↓↓x + 3y + z␈↓␈α)by␈α*(PLUS X (TIMES 3 Y) Z)␈α)and
␈↓ ↓H␈↓␈↓↓(∀x)(P(x)∨Q(x,y))␈↓␈α∪by␈α∪(ALL (X) (OR (P X) (Q X Y))).␈α∪ Any␈α∪other
␈↓ ↓H␈↓notation␈α"necessarily␈α"requires␈α"special␈α#programming,␈α"because
␈↓ ↓H␈↓standard␈α≠mathematical␈α≤notations␈α≠treat␈α≠different␈α≤operators␈α≠in
␈↓ ↓H␈↓syntactically␈α∞different␈α∞ways.␈α
 This␈α∞notation␈α∞later␈α
came␈α∞to␈α∞be␈α
called
␈↓ ↓H␈↓"Cambridge␈α⊃Polish",␈α⊂because␈α⊃it␈α⊂resembled␈α⊃the␈α⊂prefix␈α⊃notation␈α⊂of
␈↓ ↓H␈↓Lukasiewicz,␈α∞and␈α∞because␈α∞we␈α∞noticed␈α∞that␈α∞Quine␈α∞had␈α∞also␈α∂used␈α∞a
␈↓ ↓H␈↓parenthesized prefix notation.

␈↓ ↓H␈↓␈↓ α_The␈α∞erasure␈α∞problem␈α∞also␈α∞had␈α
to␈α∞be␈α∞considered,␈α∞and␈α∞it␈α
was
␈↓ ↓H␈↓clearly␈α
unaesthetic␈α
to␈α
use␈α
explicit␈α
erasure␈α
as␈α
did␈α
IPL.␈α
 There␈αwere
␈↓ ↓H␈↓two␈α∪alternatives.␈α∪ The␈α∩first␈α∪was␈α∪to␈α∪erase␈α∩the␈α∪old␈α∪contents␈α∪of␈α∩a
␈↓ ↓H␈↓program␈αvariable␈αwhenever␈αit␈αwas␈αupdated.␈α Since␈αthe␈α␈↓↓car␈↓␈αand␈α␈↓↓cdr␈↓
␈↓ ↓H␈↓operations␈α
were␈α
not␈α
to␈αcopy␈α
structure,␈α
merging␈α
list␈α
structure␈αwould



␈↓ ↓H␈↓occur,␈α∪and␈α∩erasure␈α∪would␈α∩require␈α∪a␈α∩system␈α∪of␈α∪reference␈α∩counts.
␈↓ ↓H␈↓Since␈α∂there␈α⊂were␈α∂only␈α∂six␈α⊂bits␈α∂left␈α⊂in␈α∂a␈α∂word,␈α⊂and␈α∂these␈α⊂were␈α∂in
␈↓ ↓H␈↓separated␈α∩parts␈α∩of␈α∪the␈α∩word,␈α∩reference␈α∩counts␈α∪seemed␈α∩infeasible
␈↓ ↓H␈↓without␈α
a␈αdrastic␈α
change␈αin␈α
the␈α
way␈αlist␈α
structures␈αwere␈α
represented.
␈↓ ↓H␈↓(A␈α∞list␈α∂handling␈α∞scheme␈α∂using␈α∞reference␈α∞counts␈α∂was␈α∞later␈α∂used␈α∞by
␈↓ ↓H␈↓Collins (1960) on a 48 bit CDC computer).

␈↓ ↓H␈↓␈↓ α_The␈α
second␈αalternative␈α
is␈α␈↓↓garbage␈α
collection␈↓␈αin␈α
which␈αstorage
␈↓ ↓H␈↓is␈α⊂abandoned␈α∂until␈α⊂the␈α∂free␈α⊂storage␈α∂list␈α⊂is␈α∂exhausted,␈α⊂the␈α∂storage
␈↓ ↓H␈↓accessible␈αfrom␈α
program␈αvariables␈αand␈α
the␈αstack␈α
is␈αmarked,␈αand␈α
the
␈↓ ↓H␈↓unmarked␈α∂storage␈α∞is␈α∂made␈α∞into␈α∂a␈α∞new␈α∂free␈α∞storage␈α∂list.␈α∂ Once␈α∞we
␈↓ ↓H␈↓decided␈α∂on␈α∂garbage␈α∂collection,␈α∂its␈α∂actual␈α∂implementation␈α⊂could␈α∂be
␈↓ ↓H␈↓postponed, because only toy examples were being done.

␈↓ ↓H␈↓␈↓ α_At␈α
that␈αtime␈α
it␈αwas␈α
also␈αdecided␈α
to␈αuse␈α
SAVE␈αand␈α
UNSAVE
␈↓ ↓H␈↓routines␈αthat␈αuse␈αa␈αsingle␈αcontiguous␈αpublic␈αstack␈αarray␈αto␈αsave␈αthe
␈↓ ↓H␈↓values␈α~of␈α→variables␈α~and␈α→subroutine␈α~return␈α→addresses␈α~in␈α→the
␈↓ ↓H␈↓implementation␈α⊂of␈α⊂recursive␈α⊂subroutines.␈α⊂ IPL␈α⊂built␈α⊂stacks␈α⊂as␈α∂list
␈↓ ↓H␈↓structure␈αand␈αtheir␈αuse␈αhad␈αto␈αbe␈αexplicitly␈α
programmed.␈α Another
␈↓ ↓H␈↓decision␈α∞was␈α∞to␈α∂give␈α∞up␈α∞the␈α∂prefix␈α∞and␈α∞tag␈α∂parts␈α∞of␈α∞the␈α∂word,␈α∞to
␈↓ ↓H␈↓abandon␈α␈↓↓cwr␈↓,␈αand␈αto␈αmake␈α␈↓↓cons␈↓␈αa␈αfunction␈αof␈αtwo␈αarguments.␈α This
␈↓ ↓H␈↓left␈α∞us␈α∞with␈α∞only␈α∂a␈α∞single␈α∞type␈α∞-␈α∞the␈α∂15␈α∞bit␈α∞address␈α∞-␈α∞so␈α∂that␈α∞the
␈↓ ↓H␈↓language didn't require declarations.

␈↓ ↓H␈↓␈↓ α_These␈α⊂simplifications␈α⊂made␈α⊂LISP␈α∂into␈α⊂a␈α⊂way␈α⊂of␈α∂describing
␈↓ ↓H␈↓computable␈α⊂functions␈α⊂much␈α⊂neater␈α⊂than␈α⊂the␈α⊂Turing␈α⊂machines␈α∂or
␈↓ ↓H␈↓the␈α
general␈αrecursive␈α
definitions␈αused␈α
in␈αrecursive␈α
function␈αtheory.
␈↓ ↓H␈↓The␈α#fact␈α#that␈α#Turing␈α#machines␈α#constitute␈α$an␈α#awkward
␈↓ ↓H␈↓programming␈α∃language␈α∃doesn't␈α∀much␈α∃bother␈α∃recursive␈α∀function
␈↓ ↓H␈↓theorists,␈α∀because␈α∀they␈α∀almost␈α∀never␈α∀have␈α∀any␈α∀reason␈α∃to␈α∀write
␈↓ ↓H␈↓particular␈αrecursive␈α
definitions,␈αsince␈α
the␈αtheory␈α
concerns␈αrecursive
␈↓ ↓H␈↓functions␈α⊗in␈α⊗general.␈α⊗ They␈α⊗often␈α⊗have␈α⊗reason␈α⊗to␈α↔prove␈α⊗that
␈↓ ↓H␈↓recursive␈α∂functions␈α⊂with␈α∂specific␈α∂properties␈α⊂exist,␈α∂but␈α∂this␈α⊂can␈α∂be
␈↓ ↓H␈↓done␈αby␈αan␈αinformal␈αargument␈αwithout␈αhaving␈αto␈αwrite␈αthem␈αdown
␈↓ ↓H␈↓explicitly.␈α
 In␈α
the␈α
early␈α
days␈α
of␈α
computing,␈α
some␈α∞people␈α
developed
␈↓ ↓H␈↓programming␈α∪languages␈α∪based␈α∀on␈α∪Turing␈α∪machines;␈α∀perhaps␈α∪it
␈↓ ↓H␈↓seemed␈α⊗more␈α⊗scientific.␈α⊗ Anyway,␈α↔I␈α⊗decided␈α⊗to␈α⊗write␈α↔a␈α⊗paper
␈↓ ↓H␈↓describing␈α⊗LISP␈α⊗both␈α⊗as␈α↔a␈α⊗programming␈α⊗language␈α⊗and␈α↔as␈α⊗a
␈↓ ↓H␈↓formalism␈α∩for␈α∩doing␈α∩recursive␈α∩function␈α∩theory.␈α∩ The␈α∪paper␈α∩was
␈↓ ↓H␈↓␈↓↓Recursive␈αfunctions␈αof␈αsymbolic␈αexpressions␈αand␈αtheir␈αcomputation␈αby
␈↓ ↓H␈↓↓machine,␈α∞part␈α∞I␈↓␈α∞(McCarthy␈α∞1960).␈α∞ Part␈α∞II␈α∞was␈α∞never␈α∞written␈α
but
␈↓ ↓H␈↓was␈α∂intended␈α∞to␈α∂contain␈α∂applications␈α∞to␈α∂computing␈α∂with␈α∞algebraic
␈↓ ↓H␈↓expressions.␈α⊃ The␈α⊃paper␈α⊃had␈α⊃no␈α⊃influence␈α⊃on␈α⊃recursive␈α⊃function
␈↓ ↓H␈↓theorists,␈α∩because␈α∪it␈α∩didn't␈α∩address␈α∪the␈α∩questions␈α∪that␈α∩interested
␈↓ ↓H␈↓them.

␈↓ ↓H␈↓␈↓ α_One␈αmathematical␈αconsideration␈αthat␈αinfluenced␈αLISP␈αwas␈αto
␈↓ ↓H␈↓express␈α≤programs␈α≤as␈α≤applicative␈α≤expressions␈α≤built␈α≤up␈α≤from
␈↓ ↓H␈↓variables␈α
and␈α
constants␈α
using␈α
functions.␈α
 I␈α
considered␈α
it␈αimportant
␈↓ ↓H␈↓to␈α↔make␈α↔these␈α↔expressions␈α↔obey␈α↔the␈α↔usual␈α_mathematical␈α↔laws
␈↓ ↓H␈↓allowing␈αreplacement␈α
of␈αexpressions␈αby␈α
expressions␈αgiving␈αthe␈α
same
␈↓ ↓H␈↓value.␈α
 The␈α
motive␈α∞was␈α
to␈α
allow␈α∞proofs␈α
of␈α
properties␈α∞of␈α
programs
␈↓ ↓H␈↓using␈αordinary␈αmathematical␈αmethods.␈α This␈αis␈αonly␈αpossible␈αto␈αthe
␈↓ ↓H␈↓extent␈αthat␈αside-effects␈αcan␈αbe␈αavoided.␈α Unfortunately,␈αside-effects
␈↓ ↓H␈↓are␈α∪often␈α∩a␈α∪great␈α∪convenience␈α∩when␈α∪computational␈α∪efficiency␈α∩is
␈↓ ↓H␈↓important,␈α⊂and␈α∂"functions"␈α⊂with␈α⊂side-effects␈α∂are␈α⊂present␈α⊂in␈α∂LISP.
␈↓ ↓H␈↓However,␈α∀the␈α∃so-called␈α∀pure␈α∃LISP␈α∀is␈α∃free␈α∀of␈α∃side-effects,␈α∀and
␈↓ ↓H␈↓(Cartwright␈α1976)␈αand␈α(Cartwright␈αand␈αMcCarthy␈α1978)␈αshow␈αhow
␈↓ ↓H␈↓to␈α
represent␈α
pure␈α
LISP␈α
programs␈α
by␈α
sentences␈α
and␈α
schemata␈α
in␈α
first
␈↓ ↓H␈↓order␈α∀logic␈α∀and␈α∀prove␈α∀their␈α∀properties.␈α∀ This␈α∀is␈α∀an␈α∀additional
␈↓ ↓H␈↓vindication␈αof␈α
the␈αstriving␈α
for␈αmathematical␈α
neatness,␈αbecause␈α
it␈αis
␈↓ ↓H␈↓now␈α~easier␈α≠to␈α~prove␈α~that␈α≠pure␈α~LISP␈α~programs␈α≠meet␈α~their
␈↓ ↓H␈↓specifications␈α⊂than␈α⊂it␈α⊂is␈α⊃for␈α⊂any␈α⊂other␈α⊂programming␈α⊃language␈α⊂in



␈↓ ↓H␈↓extensive␈α≥use.␈α≤ (Fans␈α≥of␈α≤other␈α≥programming␈α≥languages␈α≤are
␈↓ ↓H␈↓challenged␈α∞to␈α∞write␈α∞a␈α∞program␈α
to␈α∞concatenate␈α∞lists␈α∞and␈α∞prove␈α
that
␈↓ ↓H␈↓the operation is associative).

␈↓ ↓H␈↓␈↓ α_Another␈α⊃way␈α∩to␈α⊃show␈α⊃that␈α∩LISP␈α⊃was␈α⊃neater␈α∩than␈α⊃Turing
␈↓ ↓H␈↓machines␈αwas␈αto␈αwrite␈αa␈α
universal␈αLISP␈αfunction␈αand␈αshow␈α
that␈αit
␈↓ ↓H␈↓is␈α∀briefer␈α∀and␈α∀more␈α∀comprehensible␈α∀than␈α∀the␈α∀description␈α∀of␈α∀a
␈↓ ↓H␈↓universal␈α
Turing␈αmachine.␈α
 This␈α
was␈αthe␈α
LISP␈α
function␈α␈↓↓eval[e,a]␈↓,
␈↓ ↓H␈↓which␈α⊂computes␈α⊂the␈α⊃value␈α⊂of␈α⊂a␈α⊂LISP␈α⊃expression␈α⊂␈↓↓e␈↓␈α⊂-␈α⊃the␈α⊂second
␈↓ ↓H␈↓argument␈α␈↓↓a␈↓␈αbeing␈αa␈αlist␈αof␈αassignments␈αof␈αvalues␈αto␈αvariables.␈α (␈↓↓a␈↓␈αis
␈↓ ↓H␈↓needed␈α_to␈α↔make␈α_the␈α_recursion␈α↔work).␈α_ Writing␈α_␈↓↓eval␈↓␈α↔required
␈↓ ↓H␈↓inventing␈α⊃a␈α⊃notation␈α⊃representing␈α⊃LISP␈α⊃functions␈α⊃as␈α⊃LISP␈α⊃data,
␈↓ ↓H␈↓and␈α
such␈α
a␈α
notation␈α
was␈α
devised␈α
for␈α
the␈α
purposes␈α
of␈α
the␈α
paper␈α
with
␈↓ ↓H␈↓no␈α⊂thought␈α⊂that␈α⊃it␈α⊂would␈α⊂be␈α⊂used␈α⊃to␈α⊂express␈α⊂LISP␈α⊃programs␈α⊂in
␈↓ ↓H␈↓practice.␈α∂ Logical␈α∂completeness␈α∂required␈α∂that␈α∂the␈α∂notation␈α∂used␈α∞to
␈↓ ↓H␈↓express␈α∪functions␈α∪used␈α∪as␈α∪functional␈α∪arguments␈α∪be␈α∪extended␈α∩to
␈↓ ↓H␈↓provide␈α∪for␈α∪recursive␈α∀functions,␈α∪and␈α∪the␈α∪LABEL␈α∀notation␈α∪was
␈↓ ↓H␈↓invented␈α∂by␈α∂Nathaniel␈α⊂Rochester␈α∂for␈α∂that␈α∂purpose.␈α⊂ D.M.R.␈α∂Park
␈↓ ↓H␈↓pointed␈αout␈αthat␈αLABEL␈α
was␈αlogically␈αunnecessary␈αsince␈α
the␈αresult
␈↓ ↓H␈↓could␈α∃be␈α∃achieved␈α∃using␈α∀only␈α∃LAMBDA␈α∃-␈α∃by␈α∃a␈α∀construction
␈↓ ↓H␈↓analogous␈α⊃to␈α⊃Church's␈α∩␈↓↓Y␈↓-operator,␈α⊃albeit␈α⊃in␈α⊃a␈α∩more␈α⊃complicated
␈↓ ↓H␈↓way.

␈↓ ↓H␈↓␈↓ α_S.R.␈α∂Russell␈α∂noticed␈α∂that␈α⊂␈↓↓eval␈↓␈α∂could␈α∂serve␈α∂as␈α⊂an␈α∂interpreter
␈↓ ↓H␈↓for␈α
LISP,␈α
promptly␈α
hand␈α
coded␈α
it,␈α
and␈α
we␈α
now␈α
had␈αa␈α
programming
␈↓ ↓H␈↓language with an interpreter.

␈↓ ↓H␈↓␈↓ α_The␈α⊗unexpected␈α∃appearance␈α⊗of␈α∃an␈α⊗interpreter␈α⊗tended␈α∃to
␈↓ ↓H␈↓freeze␈α∞the␈α∞form␈α∞of␈α∞the␈α∞language,␈α∞and␈α∞some␈α∞of␈α∞the␈α∂decisions␈α∞made
␈↓ ↓H␈↓rather␈α⊂lightheartedly␈α⊂for␈α⊃the␈α⊂"Recursive␈α⊂functions␈α⊂..."␈α⊃paper␈α⊂later
␈↓ ↓H␈↓proved␈α⊗unfortunate.␈α⊗ These␈α⊗included␈α⊗the␈α⊗COND␈α⊗notation␈α⊗for
␈↓ ↓H␈↓conditional␈α∩expressions␈α⊃which␈α∩leads␈α∩to␈α⊃an␈α∩unnecessary␈α∩depth␈α⊃of
␈↓ ↓H␈↓parentheses,␈α∞and␈α∞the␈α
use␈α∞of␈α∞the␈α∞number␈α
zero␈α∞to␈α∞denote␈α∞the␈α
empty
␈↓ ↓H␈↓list␈α≥NIL␈α≥and␈α≥the␈α≥truth␈α≥value␈α≥␈↓αfalse␈↓.␈α≥ Besides␈α≥encouraging
␈↓ ↓H␈↓pornographic␈α∂programming,␈α∂giving␈α∞a␈α∂special␈α∂interpretation␈α∂to␈α∞the
␈↓ ↓H␈↓address 0 has caused difficulties in all subsequent implementations.

␈↓ ↓H␈↓␈↓ α_Another␈α∞reason␈α∂for␈α∞the␈α∂initial␈α∞acceptance␈α∂of␈α∞awkwardnesses
␈↓ ↓H␈↓in␈α
the␈α
internal␈α
form␈α
of␈α
LISP␈α
is␈α
that␈α
we␈α
still␈α
expected␈α
to␈α
switch␈α
to
␈↓ ↓H␈↓writing␈α∂programs␈α∞as␈α∂M-expressions.␈α∞ The␈α∂project␈α∞of␈α∂defining␈α∞M-
␈↓ ↓H␈↓expressions␈α∩precisely␈α∩and␈α∩compiling␈α⊃them␈α∩or␈α∩at␈α∩least␈α⊃translating
␈↓ ↓H␈↓them␈α~into␈α→S-expressions␈α~was␈α→neither␈α~finalized␈α~nor␈α→explicitly
␈↓ ↓H␈↓abandoned.␈α∞ It␈α∞just␈α∞receded␈α∂into␈α∞the␈α∞indefinite␈α∞future,␈α∞and␈α∂a␈α∞new
␈↓ ↓H␈↓generation␈α~of␈α~programmers␈α~appeared␈α~who␈α~preferred␈α~internal
␈↓ ↓H␈↓notation␈α∩to␈α∩any␈α∩FORTRAN-like␈α∩or␈α∩ALGOL-like␈α∪notation␈α∩that
␈↓ ↓H␈↓could be devised.

␈↓ ↓H␈↓3. From LISP I to LISP 1.5.

␈↓ ↓H␈↓␈↓ α_a.␈α
Property␈α
lists.␈α
 The␈α
idea␈α
of␈α
providing␈α
each␈α
atom␈α
with␈αa␈α
list
␈↓ ↓H␈↓of␈α≡properties␈α≡was␈α≡present␈α≡in␈α≡the␈α≡first␈α∨assembly␈α≡language
␈↓ ↓H␈↓implementation.␈α⊃ It␈α∩was␈α⊃also␈α∩one␈α⊃of␈α⊃the␈α∩theoretical␈α⊃ideas␈α∩of␈α⊃the
␈↓ ↓H␈↓Advice␈αTaker,␈αalthough␈αthe␈αAdvice␈αTaker␈α(McCarthy␈α1959)␈αwould
␈↓ ↓H␈↓have␈α∀required␈α∪a␈α∀property␈α∪list␈α∀for␈α∪any␈α∀expression␈α∀about␈α∪which
␈↓ ↓H␈↓information␈αwas␈αknown␈αthat␈αdid␈α
not␈αfollow␈αfrom␈αits␈αstructure.␈α
 The
␈↓ ↓H␈↓READ␈α⊃and␈α⊃PRINT␈α⊂programs␈α⊃required␈α⊃that␈α⊂the␈α⊃print␈α⊃names␈α⊂of
␈↓ ↓H␈↓atoms␈α∩be␈α∩accessible,␈α∩and␈α∩as␈α∩soon␈α∩as␈α∩function␈α∪definition␈α∩became
␈↓ ↓H␈↓possible,␈α∩it␈α∩was␈α⊃necessary␈α∩to␈α∩indicate␈α⊃whether␈α∩a␈α∩function␈α∩was␈α⊃a
␈↓ ↓H␈↓SUBR␈α∀in␈α∪machine␈α∀code␈α∀or␈α∪was␈α∀an␈α∪EXPR␈α∀represented␈α∀by␈α∪list
␈↓ ↓H␈↓structure.␈α∂ Several␈α⊂functions␈α∂dealing␈α∂with␈α⊂property␈α∂lists␈α⊂were␈α∂also
␈↓ ↓H␈↓made␈αavailable␈αfor␈αapplication␈αprograms␈αwhich␈αmade␈αheavy␈αuse␈αof
␈↓ ↓H␈↓them.



␈↓ ↓H␈↓␈↓ α_b.␈α∂Insertion␈α∞of␈α∂elements␈α∂in␈α∞lists␈α∂and␈α∞their␈α∂deletion.␈α∂ One␈α∞of
␈↓ ↓H␈↓the␈α∞original␈α∞advertised␈α∞virtues␈α∞of␈α∞list␈α∞processing␈α∞for␈α∞AI␈α∞work␈α∞was
␈↓ ↓H␈↓the␈αability␈αto␈αinsert␈αand␈αdelete␈αelements␈αof␈αlists.␈α Unfortunately,␈αthis
␈↓ ↓H␈↓facility␈α⊗coexists␈α⊗uneasily␈α∃with␈α⊗shared␈α⊗list␈α⊗structure.␈α∃ Moreover,
␈↓ ↓H␈↓operations␈α∞that␈α∞insert␈α∞and␈α∞delete␈α∞don't␈α∞have␈α∞a␈α∞neat␈α
representation
␈↓ ↓H␈↓as␈α∂functions.␈α∞ LISP␈α∂contains␈α∞them␈α∂in␈α∞the␈α∂form␈α∞of␈α∂the␈α∂␈↓↓rplaca␈↓␈α∞and
␈↓ ↓H␈↓␈↓↓rplacd␈↓␈α⊃pseudo-functions,␈α⊃but␈α⊃programs␈α⊃that␈α⊃use␈α⊃them␈α⊃cannot␈α⊃be
␈↓ ↓H␈↓conveniently␈α⊂represented␈α⊂in␈α⊂logic,␈α⊂because,␈α⊂regarded␈α⊃as␈α⊂functions,
␈↓ ↓H␈↓they don't permit replacement of equals by equals.

␈↓ ↓H␈↓␈↓ α_c.␈α
Numbers.␈α
 Many␈α
computations␈α
require␈α
both␈α
numbers␈α
and
␈↓ ↓H␈↓symbolic␈α∀expressions.␈α∀ Numbers␈α∀were␈α∀originally␈α∀implemented␈α∪in
␈↓ ↓H␈↓LISP␈α
I␈α∞as␈α
lists␈α∞of␈α
atoms,␈α∞and␈α
this␈α
proved␈α∞too␈α
slow␈α∞for␈α
all␈α∞but␈α
the
␈↓ ↓H␈↓simplest␈α⊃computations.␈α⊃ A␈α⊃reasonably␈α⊃efficient␈α⊃implementation␈α⊃of
␈↓ ↓H␈↓numbers␈α
as␈α
atoms␈α
in␈α
S-expressions␈α∞was␈α
made␈α
in␈α
LISP␈α
1.5,␈α∞but␈α
in
␈↓ ↓H␈↓all␈α⊂the␈α⊂early␈α⊂LISPs,␈α⊃numerical␈α⊂computations␈α⊂were␈α⊂still␈α⊂10␈α⊃to␈α⊂100
␈↓ ↓H␈↓times␈αslower␈αthan␈αin␈αFORTRAN.␈α Efficient␈αnumerical␈αcomputation
␈↓ ↓H␈↓requires␈α⊗some␈α⊗form␈α⊗of␈α⊗typing␈α⊗in␈α⊗the␈α⊗source␈α⊗language␈α⊗and␈α∃a
␈↓ ↓H␈↓distinction␈αbetween␈αnumbers␈αtreated␈αby␈αthemselves␈αand␈αas␈αelements
␈↓ ↓H␈↓of␈α$S-expressions.␈α$ Some␈α#recent␈α$versions␈α$of␈α$LISP␈α#allow
␈↓ ↓H␈↓distinguishing␈αtypes,␈αbut␈αat␈αthe␈αtime,␈αthis␈αseemed␈αincompatible␈αwith
␈↓ ↓H␈↓other features.

␈↓ ↓H␈↓␈↓ α_d.␈α≠Free␈α≠variables.␈α≠ In␈α≠all␈α≠innocence,␈α≠James␈α≠R.␈α≠Slagle
␈↓ ↓H␈↓programmed␈α#the␈α"following␈α#LISP␈α"function␈α#definition␈α"and
␈↓ ↓H␈↓complained when it didn't work right:

␈↓ ↓H␈↓␈↓ α_␈↓↓testr[x,p,f,u]␈α
←␈α
␈↓αif␈↓↓␈α
p[x]␈α
␈↓αthen␈↓↓␈α
f[x]␈α
␈↓αelse␈↓↓␈α
␈↓αif␈↓↓␈α
␈↓αat␈↓↓␈α
x␈α
␈↓αthen␈↓↓␈α
u[]␈α␈↓αelse␈↓↓
␈↓ ↓H␈↓↓testr[␈↓αd␈↓↓ u,p,f,λ:testr[␈↓αd␈↓↓ u,p,f,u]]␈↓.

␈↓ ↓H␈↓The␈α
object␈α
of␈α
the␈α
function␈α
is␈α
to␈α
find␈α
a␈α
subexpression␈α
of␈α␈↓↓x␈↓␈α
satisfying
␈↓ ↓H␈↓␈↓↓p[x]␈↓␈α⊗and␈α∃return␈α⊗␈↓↓f[x].␈↓␈α∃If␈α⊗the␈α∃search␈α⊗is␈α∃unsuccessful,␈α⊗then␈α∃the
␈↓ ↓H␈↓continuation␈α∞function␈α∞␈↓↓u[]␈↓␈α
of␈α∞no␈α∞arguments␈α
is␈α∞to␈α∞be␈α∞computed␈α
and
␈↓ ↓H␈↓its␈α_value␈α_returned.␈α_ The␈α_difficulty␈α_was␈α_that␈α_when␈α→an␈α_inner
␈↓ ↓H␈↓recursion␈αoccurred,␈αthe␈αvalue␈αof␈α␈↓↓u␈↓␈αwanted␈αwas␈αthe␈αouter␈αvalue,␈αbut
␈↓ ↓H␈↓the␈α
inner␈α
value␈α
was␈α
actually␈α
used.␈α
 In␈α
modern␈α∞terminology,␈α
lexical
␈↓ ↓H␈↓scoping was wanted, and dynamic scoping was obtained.

␈↓ ↓H␈↓␈↓ α_I␈α∂must␈α∞confess␈α∂that␈α∞I␈α∂regarded␈α∞this␈α∂difficulty␈α∞as␈α∂just␈α∂a␈α∞bug
␈↓ ↓H␈↓and␈αexpressed␈αconfidence␈αthat␈αSteve␈αRussell␈αwould␈αsoon␈αfix␈αit.␈α He
␈↓ ↓H␈↓did␈α⊂fix␈α⊃it␈α⊂but␈α⊃by␈α⊂inventing␈α⊂the␈α⊃so-called␈α⊂FUNARG␈α⊃device␈α⊂that
␈↓ ↓H␈↓took␈α∞the␈α∂lexical␈α∞environment␈α∞along␈α∂with␈α∞the␈α∂functional␈α∞argument.
␈↓ ↓H␈↓Similar␈α∀difficulties␈α∪later␈α∀showed␈α∪up␈α∀in␈α∪Algol␈α∀60,␈α∀and␈α∪Russell's
␈↓ ↓H␈↓turned␈α∞out␈α∂to␈α∞be␈α∞one␈α∂of␈α∞the␈α∞more␈α∂comprehensive␈α∞solutions␈α∂to␈α∞the
␈↓ ↓H␈↓problem.␈α, While␈α,it␈α,worked␈α,well␈α,in␈α-the␈α,interpreter,
␈↓ ↓H␈↓comprehensiveness␈α
and␈αspeed␈α
seem␈α
to␈αbe␈α
opposed␈α
in␈αcompiled␈α
code,
␈↓ ↓H␈↓and␈α∂this␈α∂led␈α∞to␈α∂a␈α∂succession␈α∞of␈α∂compromises.␈α∂ Unfortunately,␈α∞time
␈↓ ↓H␈↓did␈α∪not␈α∪permit␈α∪writing␈α∪an␈α∪appendix␈α∪giving␈α∪the␈α∪history␈α∪of␈α∪the
␈↓ ↓H␈↓problem,␈αand␈αthe␈αinterested␈αreader␈αis␈αreferred␈αto␈α(Moses␈α1970)␈αas␈αa
␈↓ ↓H␈↓place␈αto␈αstart.␈α (David␈α
Park␈αtells␈αme␈αthat␈α
Patrick␈αFischer␈αalso␈αhad␈α
a
␈↓ ↓H␈↓hand in developing the FUNARG device).

␈↓ ↓H␈↓␈↓ α_e.␈α∞The␈α∞"program␈α
feature".␈α∞ Besides␈α∞composition␈α∞of␈α
functions
␈↓ ↓H␈↓and␈α
conditional␈α
expressions,␈α
LISP␈α
also␈α
allows␈α
sequential␈α
programs
␈↓ ↓H␈↓written␈α∂with␈α∂assignment␈α∂statements␈α∞and␈α∂␈↓αgo to␈↓s.␈α∂ Compared␈α∂to␈α∞the
␈↓ ↓H␈↓mathematically␈α⊃elegant␈α⊃recursive␈α⊃function␈α⊃definition␈α⊃features,␈α⊂the
␈↓ ↓H␈↓"program␈α
feature"␈α
looks␈α
like␈α
a␈α
hasty␈α
afterthought.␈α
 This␈α
is␈αnot␈α
quite
␈↓ ↓H␈↓correct;␈α
the␈α
idea␈α
of␈αhaving␈α
sequential␈α
programs␈α
in␈α
LISP␈αantedates
␈↓ ↓H␈↓that␈α~of␈α≠having␈α~recursive␈α≠function␈α~definition.␈α≠ However,␈α~the
␈↓ ↓H␈↓notation␈αLISP␈αuses␈αfor␈αPROGs␈αwas␈αdefinitely␈αan␈αafterthought␈αand
␈↓ ↓H␈↓is far from optimal.

␈↓ ↓H␈↓␈↓ α_f.␈α∀Once␈α∀the␈α∀␈↓↓eval␈↓␈α∀interpreter␈α∀was␈α∀programmed,␈α∀it␈α∀became



␈↓ ↓H␈↓available␈α∩to␈α∩the␈α∩programmer,␈α∪and␈α∩it␈α∩was␈α∩especially␈α∩easy␈α∪to␈α∩use
␈↓ ↓H␈↓because␈α∂it␈α∂interprets␈α∂LISP␈α∂programs␈α∂expressed␈α∂as␈α∂LISP␈α∂data.␈α∂ In
␈↓ ↓H␈↓particular,␈α∂␈↓↓eval␈↓␈α∂made␈α∂possible␈α∂FEXPRS␈α∂and␈α∂FSUBRS␈α∂which␈α∞are
␈↓ ↓H␈↓"functions"␈αthat␈αare␈αnot␈αgiven␈αtheir␈αactual␈αarguments␈αbut␈αare␈αgiven
␈↓ ↓H␈↓the␈α∞expressions␈α
that␈α∞evaluate␈α∞to␈α
the␈α∞arguments␈α
and␈α∞must␈α∞call␈α
␈↓↓eval␈↓
␈↓ ↓H␈↓themselves␈α∞when␈α∞they␈α∞want␈α∞the␈α∞expressions␈α∞evaluated.␈α∂ The␈α∞main
␈↓ ↓H␈↓application␈αof␈αthis␈αfacility␈αis␈αto␈αfunctions␈αthat␈αdon't␈αalways␈α
evaluate
␈↓ ↓H␈↓all␈α
of␈α
their␈α
arguments;␈α
they␈α∞evaluate␈α
some␈α
of␈α
them␈α
first,␈α∞and␈α
then
␈↓ ↓H␈↓decide␈α⊃which␈α∩others␈α⊃to␈α⊃evaluate.␈α∩ This␈α⊃facility␈α∩resembles␈α⊃Algol's
␈↓ ↓H␈↓␈↓↓call-by-name␈↓␈α→but␈α_is␈α→more␈α_flexible,␈α→because␈α_␈↓↓eval␈↓␈α→is␈α_explicitly
␈↓ ↓H␈↓available.␈α∞ A␈α∞first␈α∂order␈α∞logic␈α∞treatment␈α∞of␈α∂"extensional"␈α∞FEXPRs
␈↓ ↓H␈↓and FSUBRs now seems possible.

␈↓ ↓H␈↓␈↓ α_g.␈α∩Since␈α∩LISP␈α∩works␈α∩with␈α∩lists,␈α∩it␈α∩was␈α∩also␈α∩convenient␈α∩to
␈↓ ↓H␈↓provide␈α∀for␈α∀functions␈α∀with␈α∀variable␈α∀numbers␈α∀of␈α∀arguments␈α∀by
␈↓ ↓H␈↓supplying␈α∞them␈α∞with␈α∞a␈α∞list␈α∞of␈α∞arguments␈α∞rather␈α∞than␈α∞the␈α∞separate
␈↓ ↓H␈↓arguments.

␈↓ ↓H␈↓␈↓ α_Unfortunately,␈α
none␈α
of␈α
the␈α
above␈α
features␈α
has␈α
been␈α
given␈α
a
␈↓ ↓H␈↓comprehensive␈α∃and␈α∃clear␈α∃mathematical␈α∃semantics␈α∃in␈α∃connection
␈↓ ↓H␈↓with␈αLISP␈αor␈αany␈αother␈αprogramming␈αlanguage.␈α The␈α
best␈αattempt
␈↓ ↓H␈↓in␈α
connection␈α∞with␈α
LISP␈α∞is␈α
Michael␈α∞Gordon's␈α
(1973),␈α∞but␈α
it␈α∞is␈α
too
␈↓ ↓H␈↓complicated.

␈↓ ↓H␈↓␈↓ α_h.␈α∪The␈α∪first␈α∪attempt␈α∪at␈α∪a␈α∪compiler␈α∪was␈α∪made␈α∪by␈α∪Robert
␈↓ ↓H␈↓Brayton,␈α
but␈αwas␈α
unsuccessful.␈α The␈α
first␈αsuccessful␈α
LISP␈αcompiler
␈↓ ↓H␈↓was␈α⊃programmed␈α⊃by␈α⊃Timothy␈α⊃Hart␈α⊃and␈α⊃Michael␈α⊃Levin.␈α⊃ It␈α⊃was
␈↓ ↓H␈↓written␈αin␈αLISP␈αand␈αwas␈αclaimed␈α
to␈αbe␈αthe␈αfirst␈αcompiler␈αwritten␈α
in
␈↓ ↓H␈↓the language to be compiled.

␈↓ ↓H␈↓␈↓ α_Many␈α
people␈αparticipated␈α
in␈α
the␈αinitial␈α
development␈αof␈α
LISP,
␈↓ ↓H␈↓and␈α∂I␈α∂haven't␈α∂been␈α∂able␈α∂to␈α∂remember␈α∂all␈α∂their␈α∂contributions␈α∂and
␈↓ ↓H␈↓must␈α⊂settle,␈α∂at␈α⊂this␈α∂writing,␈α⊂for␈α∂a␈α⊂list␈α∂of␈α⊂names.␈α∂ I␈α⊂can␈α∂remember
␈↓ ↓H␈↓Paul␈αAbrahams,␈αRobert␈αBrayton,␈αDaniel␈αEdwards,␈αPatrick␈αFischer,
␈↓ ↓H␈↓Phyllis␈α∞Fox,␈α∞Saul␈α∞Goldberg,␈α
Timothy␈α∞Hart,␈α∞Louis␈α∞Hodes,␈α
Michael
␈↓ ↓H␈↓Levin,␈α∀David␈α∀Luckham,␈α∃Klim␈α∀Maling,␈α∀Marvin␈α∃Minsky,␈α∀David
␈↓ ↓H␈↓Park, Nathaniel Rochester of IBM, and Steve Russell.

␈↓ ↓H␈↓4. Beyond LISP 1.5.

␈↓ ↓H␈↓␈↓ α_As␈α∪a␈α∪programming␈α∩language␈α∪LISP␈α∪had␈α∪many␈α∩limitations.
␈↓ ↓H␈↓Some␈α∀of␈α∀the␈α∃most␈α∀evident␈α∀in␈α∃the␈α∀early␈α∀1960s␈α∃were␈α∀ultra-slow
␈↓ ↓H␈↓numerical␈α∂computation,␈α∞inability␈α∂to␈α∞represent␈α∂objects␈α∞by␈α∂blocks␈α∞of
␈↓ ↓H␈↓registers␈αand␈α
garbage␈αcollect␈α
the␈αblocks,␈α
and␈αlack␈α
of␈αa␈α
good␈αsystem
␈↓ ↓H␈↓for␈αinput-output␈αof␈αsymbolic␈αexpressions␈αin␈αconventional␈αnotations.
␈↓ ↓H␈↓All␈αthese␈αproblems␈αand␈α
others␈αwere␈αto␈αbe␈α
fixed␈αin␈αLISP␈α2.␈α
 In␈αthe
␈↓ ↓H␈↓meantime,␈αwe␈αhad␈αto␈αsettle␈αfor␈αLISP␈α1.5␈αdeveloped␈αat␈αM.I.T.␈αwhich
␈↓ ↓H␈↓corrected only the most glaring deficiencies.

␈↓ ↓H␈↓␈↓ α_The␈α≤LISP␈α≠2␈α≤project␈α≠was␈α≤a␈α≠collaboration␈α≤of␈α≠Systems
␈↓ ↓H␈↓Development␈α∞Corporation␈α
and␈α∞Information␈α
International␈α∞Inc.,␈α
and
␈↓ ↓H␈↓was␈α⊂initially␈α⊂planned␈α∂for␈α⊂the␈α⊂Q32␈α∂computer,␈α⊂which␈α⊂was␈α⊂built␈α∂by
␈↓ ↓H␈↓IBM␈α
for␈α
military␈α
purposes␈α
and␈α
which␈α
had␈α
a␈α
48␈α
bit␈α
word␈α
and␈α18␈α
bit
␈↓ ↓H␈↓addresses,␈α∞i.e.,␈α∂it␈α∞was␈α∂better␈α∞than␈α∂the␈α∞IBM␈α∂7090␈α∞for␈α∂an␈α∞ambitious
␈↓ ↓H␈↓project.␈α Unfortunately,␈α
the␈αQ32␈αat␈α
SDC␈αwas␈αnever␈α
equipped␈αwith
␈↓ ↓H␈↓more␈αthan␈α48K␈αwords␈αof␈αthis␈αmemory.␈α When␈αit␈αbecame␈α
clear␈αthat
␈↓ ↓H␈↓the␈α∪Q32␈α∩had␈α∪too␈α∪little␈α∩memory,␈α∪it␈α∪was␈α∩decided␈α∪to␈α∪develop␈α∩the
␈↓ ↓H␈↓language␈αfor␈αthe␈αIBM␈α360/67␈αand␈αthe␈αDigital␈αEquipment␈αPDP-6␈α-
␈↓ ↓H␈↓SDC␈αwas␈αacquiring␈αthe␈αformer,␈αwhile␈αIII␈αand␈αM.I.T.␈α and␈αStanford
␈↓ ↓H␈↓preferred␈α∪the␈α∪latter.␈α∀ The␈α∪project␈α∪proved␈α∪more␈α∀expensive␈α∪than
␈↓ ↓H␈↓expected,␈α⊃the␈α∩collaboration␈α⊃proved␈α∩more␈α⊃difficult␈α∩than␈α⊃expected,
␈↓ ↓H␈↓and␈αso␈αLISP␈α2␈αwas␈αdropped.␈α From␈αa␈α1970s␈αpoint␈αof␈αview,␈αthis␈αwas
␈↓ ↓H␈↓regrettable,␈α∩because␈α∪much␈α∩more␈α∩money␈α∪has␈α∩since␈α∩been␈α∪spent␈α∩to



␈↓ ↓H␈↓develop␈α∪LISPs␈α∪with␈α∪fewer␈α∪features.␈α∪ However,␈α∪it␈α∪was␈α∀not␈α∪then
␈↓ ↓H␈↓known␈α∂that␈α∞the␈α∂dominant␈α∞machine␈α∂for␈α∞AI␈α∂research␈α∞would␈α∂be␈α∞the
␈↓ ↓H␈↓PDP-10,␈α
a␈αsuccessor␈α
of␈α
the␈αPDP-6.␈α
 A␈α
part␈αof␈α
the␈α
AI␈αcommunity,
␈↓ ↓H␈↓e.g.␈α∀BBN␈α∀and␈α∃SRI␈α∀made␈α∀what␈α∃proved␈α∀to␈α∀be␈α∃an␈α∀architectural
␈↓ ↓H␈↓digression in doing AI work on the SDS 940 computer.

␈↓ ↓H␈↓␈↓ α_The␈α≤existence␈α≤of␈α≤an␈α≤interpreter␈α≤and␈α≤the␈α≥absence␈α≤of
␈↓ ↓H␈↓declarations␈α∂makes␈α∞it␈α∂particularly␈α∂natural␈α∞to␈α∂use␈α∞LISP␈α∂in␈α∂a␈α∞time-
␈↓ ↓H␈↓sharing␈α∪environment.␈α∀ It␈α∪is␈α∪convenient␈α∀to␈α∪define␈α∀functions,␈α∪test
␈↓ ↓H␈↓them,␈α
and␈αre-edit␈α
them␈αwithout␈α
ever␈αleaving␈α
the␈α
LISP␈αinterpreter.
␈↓ ↓H␈↓A␈αdemonstration␈αof␈αLISP␈αin␈αa␈αprototype␈αtime-sharing␈αenvironment
␈↓ ↓H␈↓on␈αthe␈αIBM␈α
704␈αwas␈αmade␈α
in␈α1960␈α(or␈α
1961).␈α(See␈αAppendix␈α2).␈α
 L.
␈↓ ↓H␈↓Peter␈αDeutsch␈αimplemented␈αthe␈αfirst␈αinteractive␈αLISP␈αon␈αthe␈αPDP-
␈↓ ↓H␈↓1␈α∞computer␈α∞in␈α∞1963,␈α∞but␈α∞the␈α∞PDP-1␈α∞had␈α∞too␈α∞small␈α∞a␈α∂memory␈α∞for
␈↓ ↓H␈↓serious symbolic computation.

␈↓ ↓H␈↓␈↓ α_The␈α∞most␈α∞important␈α∞implementations␈α∞of␈α∞LISP␈α∞proved␈α∞to␈α
be
␈↓ ↓H␈↓those␈αfor␈αthe␈αPDP-6␈αcomputer␈αand␈αits␈αsuccessor␈αthe␈αPDP-10␈αmade
␈↓ ↓H␈↓by␈αthe␈αDigital␈αEquipment␈αCorporation␈αof␈αMaynard,␈αMassachusetts.
␈↓ ↓H␈↓In␈α⊃fact,␈α⊃the␈α⊃half␈α⊃word␈α⊂instructions␈α⊃and␈α⊃the␈α⊃stack␈α⊃instructions␈α⊂of
␈↓ ↓H␈↓these␈α
machines␈αwere␈α
developed␈αwith␈α
LISP's␈αrequirements␈α
in␈αmind.
␈↓ ↓H␈↓The␈αearly␈αdevelopment␈αof␈αLISP␈αat␈αM.I.T.␈αfor␈αthis␈αline␈αof␈αmachines
␈↓ ↓H␈↓and␈α
its␈α
subsequent␈α∞development␈α
of␈α
INTERLISP␈α
(nee␈α∞BBN␈α
LISP)
␈↓ ↓H␈↓and␈α∪MACLISP␈α∩also␈α∪contributed␈α∪to␈α∩making␈α∪these␈α∪machines␈α∩the
␈↓ ↓H␈↓machines␈α⊂of␈α⊂choice␈α⊂for␈α⊂artificial␈α⊂intelligence␈α⊂research.␈α⊂ The␈α⊂IBM
␈↓ ↓H␈↓704␈α
LISP␈α
was␈α
extended␈αto␈α
the␈α
IBM␈α
7090␈αand␈α
later␈α
led␈α
to␈αLISPs␈α
for
␈↓ ↓H␈↓the IBM 360 and 370.

␈↓ ↓H␈↓␈↓ α_The␈α∪earliest␈α∪publications␈α∪on␈α∩LISP␈α∪were␈α∪in␈α∪the␈α∩Quarterly
␈↓ ↓H␈↓Progress␈αReports␈αof␈αthe␈αM.I.T.␈αResearch␈αLaboratory␈αof␈αElectronics.
␈↓ ↓H␈↓(McCarthy␈α∪1960)␈α∪was␈α∪the␈α∩first␈α∪journal␈α∪publication.␈α∪ The␈α∩␈↓↓LISP
␈↓ ↓H␈↓↓Programmer's␈α↔Manual␈↓␈α⊗by␈α↔Phyllis␈α↔Fox␈α⊗was␈α↔published␈α↔by␈α⊗the
␈↓ ↓H␈↓Research␈α∩Laboratory␈α∪of␈α∩Electronics␈α∪in␈α∩1960␈α∪and␈α∩the␈α∪␈↓↓LISP␈α∩1.5
␈↓ ↓H␈↓↓Programmer's␈α⊂Manual␈↓␈α⊂by␈α⊂McCarthy,␈α⊂Levin,␈α⊂et.␈α⊂al.␈α⊂ in␈α⊃1962␈α⊂was
␈↓ ↓H␈↓published␈α⊃by␈α⊃M.I.T.␈α∩Press.␈α⊃ After␈α⊃the␈α⊃publication␈α∩of␈α⊃(McCarthy
␈↓ ↓H␈↓and␈α∃Levin␈α∃1962),␈α∃many␈α∀LISP␈α∃implementations␈α∃were␈α∃made␈α∀for
␈↓ ↓H␈↓numerous␈α⊂computers.␈α⊂ However,␈α⊂in␈α⊂contrast␈α⊂to␈α⊂the␈α⊂situation␈α⊂with
␈↓ ↓H␈↓most␈α
widely␈α
used␈αprogramming␈α
languages,␈α
no␈α
organization␈αhas␈α
ever
␈↓ ↓H␈↓attempted␈αto␈αpropagate␈αLISP,␈αand␈αthere␈αhas␈αnever␈αbeen␈αan␈αattempt
␈↓ ↓H␈↓at␈αagreeing␈αon␈αa␈α
standardization,␈αalthough␈αrecently␈αA.C.␈αHearn␈α
has
␈↓ ↓H␈↓developed␈αa␈α"standard␈αLISP"␈α(Marti,␈αHearn,␈αGriss␈αand␈αGriss␈α1978)
␈↓ ↓H␈↓that␈α∪runs␈α∪on␈α∀a␈α∪number␈α∪of␈α∪computers␈α∀in␈α∪order␈α∪to␈α∀support␈α∪the
␈↓ ↓H␈↓REDUCE system for computation with algebraic expressions.

␈↓ ↓H␈↓5. Conclusions.

␈↓ ↓H␈↓␈↓ α_LISP␈α∩is␈α∩now␈α∩the␈α∩second␈α∩oldest␈α∩programming␈α∪language␈α∩in
␈↓ ↓H␈↓present␈α
widespread␈αuse␈α
(after␈αFORTRAN␈α
and␈αnot␈α
counting␈αAPT,
␈↓ ↓H␈↓which␈α
isn't␈αused␈α
for␈αprogramming␈α
␈↓↓per␈αse␈↓).␈α
 It␈αowes␈α
its␈α
longevity␈αto
␈↓ ↓H␈↓two␈αfacts.␈αFirst,␈αits␈αcore␈αoccupies␈αsome␈αkind␈αof␈αlocal␈αoptimum␈αin␈αthe
␈↓ ↓H␈↓space␈α≥of␈α≥programming␈α≥languages␈α≥given␈α≥that␈α≡static␈α≥friction
␈↓ ↓H␈↓discourages␈α
purely␈α
notational␈α
changes.␈α
 Recursive␈α
use␈α
of␈α
conditional
␈↓ ↓H␈↓expressions,␈α⊃representation␈α⊃of␈α⊂symbolic␈α⊃information␈α⊃externally␈α⊂by
␈↓ ↓H␈↓lists␈αand␈αinternally␈αby␈αlist␈αstructure,␈αand␈αrepresentation␈αof␈αprogram
␈↓ ↓H␈↓in the same way will probably have a very long life.

␈↓ ↓H␈↓␈↓ α_Second,␈α∩LISP␈α∩still␈α∩has␈α∩operational␈α∩features␈α∪unmatched␈α∩by
␈↓ ↓H␈↓other␈α∞language␈α
that␈α∞make␈α
it␈α∞a␈α
convenient␈α∞vehicle␈α
for␈α∞higher␈α
level
␈↓ ↓H␈↓systems␈α∪for␈α∪symbolic␈α∀computation␈α∪and␈α∪for␈α∀artificial␈α∪intelligence.
␈↓ ↓H␈↓These␈α∩include␈α∩its␈α∩run-time␈α∩system␈α⊃that␈α∩give␈α∩good␈α∩access␈α∩to␈α⊃the
␈↓ ↓H␈↓features␈α∀of␈α∀the␈α∀host␈α∀machine␈α∪and␈α∀its␈α∀operating␈α∀system,␈α∀its␈α∪list
␈↓ ↓H␈↓structure␈α_internal␈α_language␈α_that␈α_makes␈α_it␈α_a␈α_good␈α→target␈α_for
␈↓ ↓H␈↓compiling␈α⊂from␈α⊂yet␈α⊂higher␈α⊂level␈α⊂languages,␈α⊂its␈α⊂compatibility␈α∂with



␈↓ ↓H␈↓systems␈α⊂that␈α⊂produce␈α⊂binary␈α⊂or␈α⊂assembly␈α⊂level␈α⊂program,␈α⊃and␈α⊂the
␈↓ ↓H␈↓availability␈α∞of␈α∂its␈α∞interpreter␈α∂as␈α∞a␈α∂command␈α∞language␈α∂for␈α∞driving
␈↓ ↓H␈↓other␈α∪programs.␈α∪ (One␈α∩can␈α∪even␈α∪conjecture␈α∩that␈α∪LISP␈α∪owes␈α∩its
␈↓ ↓H␈↓survival␈α∂specifically␈α∂to␈α∂the␈α∂fact␈α∂that␈α∂its␈α∂programs␈α∂are␈α⊂lists,␈α∂which
␈↓ ↓H␈↓everyone,␈αincluding␈αme,␈αhas␈αregarded␈αas␈αa␈αdisadvantage.␈α Proposed
␈↓ ↓H␈↓replacements␈αfor␈α
LISP,␈αe.g.␈α
POP-2␈α(Burstall␈α1968,1971),␈α
abandoned
␈↓ ↓H␈↓this␈α∩feature␈α∩in␈α⊃favor␈α∩of␈α∩an␈α⊃Algol-like␈α∩syntax␈α∩leaving␈α∩no␈α⊃target
␈↓ ↓H␈↓language for higher level systems).

␈↓ ↓H␈↓␈↓ α_LISP␈α∀will␈α∪become␈α∀obsolete␈α∪when␈α∀someone␈α∪makes␈α∀a␈α∪more
␈↓ ↓H␈↓comprehensive␈α∞language␈α∞that␈α
dominates␈α∞LISP␈α∞practically␈α∞and␈α
also
␈↓ ↓H␈↓gives␈α
a␈α∞clear␈α
mathematical␈α∞semantics␈α
to␈α∞a␈α
more␈α∞comprehensive␈α
set
␈↓ ↓H␈↓of features.

␈↓ ↓H␈↓6. References.

␈↓ ↓H␈↓␈↓αAbrahams,␈α⊂Paul␈α⊂W.␈α⊂␈↓(1963),␈α⊂␈↓Machine␈α⊂verification␈α⊃of␈α⊂mathematical
␈↓ ↓H␈↓proof, ␈↓thesis, MIT Computation Center, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αAbrahams,␈α∃Paul␈α∃W.,␈α∃Barnett,␈α∃J.,␈α∀et␈α∃al.,␈α∃␈↓(1966),␈α∃"The␈α∃LISP␈α∀2
␈↓ ↓H␈↓Programming␈αLanguage␈α
and␈αSystem",␈α
␈↓Proceedings␈αof␈α
the␈αFall␈α
Joint
␈↓ ↓H␈↓Computer Conference, ␈↓pp.  661-676.

␈↓ ↓H␈↓␈↓αAbrahams,␈α≠Paul␈α~W.␈α≠␈↓(1967),␈α~␈↓LISP␈α≠2␈α≠Specifications,␈α~␈↓Systems
␈↓ ↓H␈↓Development␈α≡Corporation␈α≡Technical␈α∨report␈α≡TM-3417/200/00,
␈↓ ↓H␈↓Santa Monica, Calif.

␈↓ ↓H␈↓␈↓αAllen, John ␈↓(1978), ␈↓Anatomy of LISP, ␈↓McGraw Hill.

␈↓ ↓H␈↓␈↓αBerkeley,␈α→Edmund␈α_C.␈α→and␈α_Daniel␈α→Bobrow,␈α_eds.␈↓␈α→(1964),␈α_␈↓The
␈↓ ↓H␈↓Programming␈α⊗Language␈α∃LISP,␈α⊗its␈α∃Operation␈α⊗and␈α∃Applications␈↓,
␈↓ ↓H␈↓Information␈α
International␈αIncorporated,␈α
Cambridge,␈αMassachusetts.
␈↓ ↓H␈↓(out of print).

␈↓ ↓H␈↓␈↓αBurstall,␈α∃R.M.,␈α∃J.S.␈α∃Collins␈α∀and␈α∃R.J.␈α∃Popplestone␈α∃␈↓(1968),␈α∀␈↓↓The
␈↓ ↓H␈↓↓POP-2 Papers␈↓, Edinburgh University Press, Edinburgh, Scotland.

␈↓ ↓H␈↓␈↓αBurstall,␈α∨R.M.,␈α∨J.S.␈α≡Collins␈α∨and␈α∨R.J.␈α∨Popplestone␈α≡␈↓(1971),
␈↓ ↓H␈↓␈↓↓Programming␈α
in␈α
POP-2␈↓.␈α
Edinburgh␈α
University␈α
Press,␈α
Edinburgh,
␈↓ ↓H␈↓Scotland.

␈↓ ↓H␈↓␈↓αCartwright,␈α∂Robert␈α⊂␈↓(1976),␈α∂␈↓A␈α⊂practical␈α∂formal␈α⊂semantic␈α∂definition
␈↓ ↓H␈↓and␈α≤verification␈α≤system␈α≤for␈α≤typed␈α≤LISP␈↓,␈α≤Stanford␈α≠Artificial
␈↓ ↓H␈↓Intelligence␈α≡Laboratory␈α∨technical␈α≡report␈α∨AIM-296,␈α≡Stanford,
␈↓ ↓H␈↓California.

␈↓ ↓H␈↓␈↓αCartwright,␈αRobert␈αand␈αJohn␈αMcCarthy␈↓␈α(1978)␈α"Representation␈αof
␈↓ ↓H␈↓Recursive␈αPrograms␈αin␈αFirst␈αOrder␈αLogic"␈α(to␈αbe␈αpublished).␈α(Draft
␈↓ ↓H␈↓available as FIRST.NEW[W77,JMC] at SU-AI on ARPAnet).

␈↓ ↓H␈↓␈↓αCollins,␈α⊃G.E.␈↓␈α⊃(1960)␈α⊃"A␈α∩method␈α⊃for␈α⊃overlapping␈α⊃and␈α∩erasure␈α⊃of
␈↓ ↓H␈↓lists", ␈↓↓Communications of the ACM␈↓, Vol. 3, pp. 655-657.

␈↓ ↓H␈↓␈↓αChurch,␈α∪Alonzo␈α∩␈↓(1941),␈α∪␈↓Calculi␈α∩of␈α∪Lambda␈α∪conversion,␈α∩␈↓Princeton
␈↓ ↓H␈↓University Press, Princeton, New Jersey.

␈↓ ↓H␈↓␈↓αFox,␈α∞Phyllis␈α∞(1960)␈α∞␈↓LISP␈α∞I␈α∞Programmers␈α∞Manual,␈α∂␈↓Internal␈α∞paper,
␈↓ ↓H␈↓MIT, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αGordon,␈α↔Michael␈α↔␈↓(1973)␈α_␈↓Models␈α↔of␈α↔Pure␈α_LISP␈↓,␈α↔Experimental
␈↓ ↓H␈↓Programming␈α#Reports:␈α"No.␈α#31,␈α"University␈α#of␈α"Edinburgh,
␈↓ ↓H␈↓Edinburgh.



␈↓ ↓H␈↓␈↓αGelernter,␈α∃H.,␈α∀J.␈α∃R.␈α∀Hansen,␈α∃and␈α∀C.␈α∃L.␈α∀Gerberich␈α∃␈↓(1960),␈α∀"A
␈↓ ↓H␈↓FORTRAN-Compiled␈α∂List␈α∂Processing␈α∂Language",␈α∂␈↓Journal␈α∂of␈α∞the
␈↓ ↓H␈↓ACM␈↓, Vol. 7, No. 2, pp. 87-101.

␈↓ ↓H␈↓␈↓αHearn,␈α⊗Anthony␈α↔␈↓(1967),␈α⊗␈↓REDUCE,␈α⊗a␈α↔User-oriented␈α⊗Interactive
␈↓ ↓H␈↓System␈α
for␈α
Algebraic␈α
Simplification,␈α
␈↓Stanford␈α∞Artificial␈α
Intelligence
␈↓ ↓H␈↓Laboratory technical report AIM-57, Stanford, California.

␈↓ ↓H␈↓␈↓αHewitt,␈α∀Carl␈α∪␈↓(1971),␈α∀␈↓Description␈α∪and␈α∀theoretical␈α∀analysis␈α∪(using
␈↓ ↓H␈↓schemata)␈α∩of␈α∩PLANNER:␈α∩a␈α∩language␈α∩for␈α∩proving␈α∩theorems␈α⊃and
␈↓ ↓H␈↓manipulating␈α⊃models␈α⊃in␈α⊃a␈α⊃robot,␈α⊃␈↓Ph.D.␈α⊃Thesis,␈α⊃MIT,␈α⊂Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α$John␈α$␈↓(1958)␈α$"Programs␈α$with␈α%common␈α$sense",
␈↓ ↓H␈↓␈↓Proceedings␈α⊃of␈α∩the␈α⊃Symposium␈α⊃on␈α∩the␈α⊃Mechanization␈α∩of␈α⊃Thought
␈↓ ↓H␈↓Processes, ␈↓National Physiology Lab, Teddington, England.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α⊗J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α⊗al.,␈α∃␈↓(1959a),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report␈α∪No.␈α∪52,␈α∀Research␈α∪Lab␈α∪of␈α∪Electronics,␈α∀MIT,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α∃J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α∃al.,␈α∃␈↓(1959b),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report␈α∪No.␈α∪55,␈α∀Research␈α∪Lab␈α∪of␈α∪Electronics,␈α∀MIT,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy, John ␈↓(1959c), Letter to the Editor, ␈↓CACM, ␈↓Vol. 2, No. 8.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α⊗J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α⊗al.,␈α∃␈↓(1960a),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report␈α∪No.␈α∪56,␈α∀Research␈α∪Lab␈α∪of␈α∪Electronics,␈α∀MIT,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α≥John␈α≤␈↓(1960b),␈α≥"Recursive␈α≤Functions␈α≥of␈α≤Symbolic
␈↓ ↓H␈↓Expressions␈α∂and␈α⊂their␈α∂Computation␈α∂by␈α⊂Machine,␈α∂part␈α⊂I",␈↓␈α∂CACM,
␈↓ ↓H␈↓␈↓Vol. 3, No. 4, pp. 184-195.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α⊗J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α⊗al.,␈α∃␈↓(1962a),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report, Research Lab of Electronics, MIT, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α∃J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α∃al.,␈α∃␈↓(1962b),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report␈α∪No.␈α∪64,␈α∀Research␈α∪Lab␈α∪of␈α∪Electronics,␈α∀MIT,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α⊃John␈α∩␈↓(1962c),␈α⊃␈↓LISP␈α∩1.5␈α⊃Programmer's␈α∩Manual,␈α⊃␈↓(with
␈↓ ↓H␈↓Abrahams,␈α∩Edwards,␈α∩Hart,␈α∩and␈α∩Levin),␈α∩MIT␈α∩Press,␈α∩Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α⊗J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α⊗al.,␈α∃␈↓(1963a),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report␈α∪No.␈α∪68,␈α∀Research␈α∪Lab␈α∪of␈α∪Electronics,␈α∀MIT,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α∃J.,␈α∃Minsky,␈α⊗M.,␈α∃et␈α∃al.,␈α∃␈↓(1963b),␈α⊗Quarterly␈α∃Progress
␈↓ ↓H␈↓Report␈α∪No.␈α∪69,␈α∀Research␈α∪Lab␈α∪of␈α∪Electronics,␈α∀MIT,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α∂John␈↓␈α∂(1963c)␈α∂"A␈α∞Basis␈α∂for␈α∂a␈α∂Mathematical␈α∂Theory␈α∞of
␈↓ ↓H␈↓Computation",␈α∂in␈α∂P.␈α∂Braffort␈α∂and␈α∂D.␈α∂Hirschberg␈α∂(eds.),␈α∂␈↓Computer
␈↓ ↓H␈↓Programming␈α⊗and␈α⊗Formal␈α⊗Systems␈↓,␈α⊗pp.␈α↔33-70.␈α⊗ North-Holland
␈↓ ↓H␈↓Publishing Company, Amsterdam.

␈↓ ↓H␈↓␈↓αMcCarthy,␈α∃John␈α∃␈↓(1963d)␈α∃"Towards␈α∃a␈α∃Mathematical␈α∃Science␈α∀of
␈↓ ↓H␈↓Computation",␈α≤␈↓Proceedings␈α≠of␈α≤IFIP␈α≠Congress,␈α≤Munich␈α≠1962␈↓,
␈↓ ↓H␈↓Amsterdam: North-Holland, pp. 21-28.



␈↓ ↓H␈↓␈↓αMcCarthy,␈αJ.,␈αMinsky,␈αM.,␈αet␈αal.,␈α␈↓(1965),␈αQuarterly␈αProgress␈αReport
␈↓ ↓H␈↓No. 76, Research Lab of Electronics, MIT, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈αJ.,␈αMinsky,␈αM.,␈αet␈αal.,␈α␈↓(1966),␈αQuarterly␈αProgress␈αReport
␈↓ ↓H␈↓No. 80, Research Lab of Electronics, MIT, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αMcCarthy,␈αJohn␈αand␈αCarolyn␈αTalcott␈↓␈α(1979)␈α␈↓↓LISP␈αwith␈αProofs␈↓,␈αto
␈↓ ↓H␈↓be␈α∀published.␈α∀ Versions␈α∀of␈α∀most␈α∀chapters␈α∀are␈α∀available␈α∃at␈α∀the
␈↓ ↓H␈↓Stanford Artificial Intelligence Laboratory.

␈↓ ↓H␈↓␈↓αMarti,␈α∃J.␈α∃B.,␈α∃Hearn,␈α∃A.␈α∃C.,␈α∃Griss,␈α∃M.␈α∃L.and␈α∃Griss,␈α⊗C.␈α∃␈↓(1978)
␈↓ ↓H␈↓␈↓Standard␈αLISP␈αReport,␈α␈↓University␈αof␈αUtah␈αSymbolic␈αComputation
␈↓ ↓H␈↓Group Report No 60, Provo, Utah.

␈↓ ↓H␈↓␈↓αThe␈α≠Mathlab␈α≠Group␈α≠␈↓(1977),␈α≠␈↓MACSYMA␈α≠Reference␈α~Manual,
␈↓ ↓H␈↓␈↓Laboratory␈α∪for␈α∪Computer␈α∪Science,␈α∪MIT␈α∪Version␈α∀9,␈α∪Cambridge,
␈↓ ↓H␈↓Mass.

␈↓ ↓H␈↓␈↓αMitchell,␈α∩R.W.␈α∩␈↓(1964)␈α⊃␈↓LISP␈α∩2␈α∩Specifications␈α∩Proposal,␈α⊃␈↓Stanford
␈↓ ↓H␈↓Artificial Intelligence Laboratory Memo No. 21, Stanford, Calif.

␈↓ ↓H␈↓␈↓αMoon,␈α∀David␈α∀A.␈α∃␈↓(1974),␈α∀␈↓MACLISP␈α∀Reference␈α∃Manual,␈α∀␈↓Project
␈↓ ↓H␈↓MAC Technical Report, MIT, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αMoses,␈α∂Joel␈α∂␈↓(1970)␈α∞␈↓The␈α∂function␈α∂of␈α∞FUNCTION␈α∂in␈α∂LISP␈α∂or␈α∞why
␈↓ ↓H␈↓the␈α⊂FUNARG␈α⊂problem␈α⊂should␈α∂be␈α⊂called␈α⊂the␈α⊂environment␈α∂problem␈↓",
␈↓ ↓H␈↓M.I.T. Artificial Intelligence Memo 199, Cambridge, Mass.

␈↓ ↓H␈↓␈↓αNewell,␈αA.,␈αand␈αJ.C.␈αShaw␈α␈↓(1957)␈α"Programming␈αthe␈αLogic␈αTheory
␈↓ ↓H␈↓Machine",␈α~␈↓Proceedings␈α~of␈α~the␈α~1957␈α~Western␈α~Joint␈α~Computer
␈↓ ↓H␈↓Conference, ␈↓IRE.

␈↓ ↓H␈↓␈↓αRulifson,␈α⊗J.␈α∃et␈α⊗al.␈α⊗␈↓(1968),␈α∃"QA4␈α⊗-␈α∃A␈α⊗Language␈α⊗for␈α∃Writing
␈↓ ↓H␈↓Problem-Solving␈αPrograms",␈α␈↓Proceeding␈αIFIP␈α1968␈αCongress,␈α␈↓TA-
␈↓ ↓H␈↓2, pp 111-115.

␈↓ ↓H␈↓␈↓αStoyan,␈αHerbert␈↓.␈α Herbert␈αStoyan␈αof␈αDresden,␈αDDR␈α
has␈αcompleted
␈↓ ↓H␈↓several chapters on the history of LISP.

␈↓ ↓H␈↓␈↓αSussman,␈αG.␈αWinograd,␈αT.,␈αand␈αCharniak,␈αE.␈α␈↓(1970),␈α␈↓Microplanner
␈↓ ↓H␈↓Reference Manual, ␈↓AI Memo 203, AIL MIT, Camridge, Mass.

␈↓ ↓H␈↓␈↓αTeitelman,␈α≠Warren␈α≠␈↓(1975),␈α≠␈↓INTERLISP:␈α≠Interlisp␈α≠Reference
␈↓ ↓H␈↓Manual, Xerox PARC Technical Report, Palo Alto, Calif.

␈↓ ↓H␈↓␈↓αWeisman, Clark ␈↓(1967), ␈↓LISP 1.5 Primer, ␈↓Dickenson Press.

␈↓ ↓H␈↓Many␈α~reports␈α~and␈α~memoranda␈α→of␈α~the␈α~M.I.T.␈α~and␈α→Stanford
␈↓ ↓H␈↓Artificial␈α
Intelligence␈αLaboratories␈α
have␈αdealt␈α
with␈α
various␈αaspects
␈↓ ↓H␈↓of LISP and higher level systems built on LISP.

␈↓ ↓H␈↓APPENDIX - HUMOROUS ANECDOTE

␈↓ ↓H␈↓␈↓ α_The␈αfirst␈αon-line␈αdemonstration␈αof␈αLISP␈αwas␈αalso␈αthe␈αfirst␈αof
␈↓ ↓H␈↓a␈α⊃precursor␈α⊃of␈α⊃time-sharing␈α⊃that␈α⊃we␈α⊃called␈α⊃"time-stealing".␈α⊃ The
␈↓ ↓H␈↓audience␈α⊂comprised␈α∂the␈α⊂participants␈α∂in␈α⊂one␈α∂of␈α⊂M.I.T.'s␈α∂Industrial
␈↓ ↓H␈↓Liaison␈α∪Symposia␈α∪on␈α∪whom␈α∪it␈α∪was␈α∪important␈α∪to␈α∪make␈α∀a␈α∪good
␈↓ ↓H␈↓impression.␈α
 A␈α
Flexowriter␈α
had␈α
been␈α
connected␈α
to␈α
the␈α
IBM␈α
704␈α
and
␈↓ ↓H␈↓the␈α∞operating␈α∞system␈α∞modified␈α∂so␈α∞that␈α∞it␈α∞collected␈α∂characters␈α∞from
␈↓ ↓H␈↓the␈α
Flexowriter␈α
in␈α
a␈α
buffer␈α
when␈α
their␈α
presence␈α
was␈α
signalled␈α
by␈α
an
␈↓ ↓H␈↓interrupt.␈α Whenever␈αa␈α
carriage␈αreturn␈αoccurred,␈α
the␈αline␈αwas␈α
given
␈↓ ↓H␈↓to␈α∞LISP␈α
for␈α∞processing.␈α
 The␈α∞demonstration␈α
depended␈α∞on␈α∞the␈α
fact
␈↓ ↓H␈↓that␈α⊂the␈α⊂memory␈α⊃of␈α⊂the␈α⊂computer␈α⊃had␈α⊂just␈α⊂been␈α⊃increased␈α⊂from



␈↓ ↓H␈↓8192␈α
words␈α
to␈α32768␈α
words␈α
so␈α
that␈αbatches␈α
could␈α
be␈α
collected␈αthat
␈↓ ↓H␈↓presumed only a small memory.

␈↓ ↓H␈↓␈↓ α_The␈α⊂demonstration␈α⊂was␈α⊃also␈α⊂one␈α⊂of␈α⊃the␈α⊂first␈α⊂to␈α⊃use␈α⊂closed
␈↓ ↓H␈↓circuit␈α∃TV␈α∃in␈α∃order␈α∃to␈α∃spare␈α∃the␈α∃spectators␈α∃the␈α∃museum␈α∀feet
␈↓ ↓H␈↓consequent␈α∞on␈α∞crowding␈α∞around␈α
a␈α∞terminal␈α∞waiting␈α∞for␈α
something
␈↓ ↓H␈↓to␈α
happen.␈α
 Thus␈α
they␈α
were␈α
on␈αthe␈α
fourth␈α
floor,␈α
and␈α
I␈α
was␈α
in␈αthe
␈↓ ↓H␈↓first␈α∩floor␈α∩computer␈α⊃room␈α∩exercising␈α∩LISP␈α⊃and␈α∩speaking␈α∩into␈α⊃a
␈↓ ↓H␈↓microphone.␈α The␈αproblem␈αchosen␈α
was␈αto␈αdetermine␈αwhether␈αa␈α
first
␈↓ ↓H␈↓order␈α∞differential␈α∂equation␈α∞of␈α∞the␈α∂form␈α∞␈↓↓Mdx + Ndy␈↓␈α∞was␈α∂exact␈α∞by
␈↓ ↓H␈↓testing␈α≡whether␈α≡␈↓↓∂M/∂y = ∂N/∂x␈↓,␈α≡which␈α≡also␈α≡involved␈α≥some
␈↓ ↓H␈↓primitive algebraic simplification.

␈↓ ↓H␈↓␈↓ α_Everything␈α∀was␈α∪going␈α∀well,␈α∪if␈α∀slowly,␈α∪when␈α∀suddenly␈α∪the
␈↓ ↓H␈↓Flexowriter began to type (at ten characters per second)

␈↓ ↓H␈↓"THE␈α∨GARBAGE␈α≡COLLECTOR␈α∨HAS␈α∨BEEN␈α≡CALLED.
␈↓ ↓H␈↓SOME INTERESTING STATISTICS ARE AS FOLLOWS:"

␈↓ ↓H␈↓and␈α
on␈α
and␈αon␈α
and␈α
on.␈α The␈α
garbage␈α
collector␈αwas␈α
quite␈α
new␈αat␈α
the
␈↓ ↓H␈↓time,␈α⊂we␈α⊂were␈α⊂rather␈α⊂proud␈α⊂of␈α⊂it␈α⊂and␈α⊂curious␈α⊂about␈α⊂it,␈α⊃and␈α⊂our
␈↓ ↓H␈↓normal␈αoutput␈αwas␈αon␈αa␈αline␈αprinter,␈αso␈αit␈αprinted␈αa␈αfull␈αpage␈αevery
␈↓ ↓H␈↓time␈α
it␈α
was␈α∞called␈α
giving␈α
how␈α
many␈α∞words␈α
were␈α
marked␈α∞and␈α
how
␈↓ ↓H␈↓many␈α∪were␈α∀collected␈α∪and␈α∀the␈α∪size␈α∀of␈α∪list␈α∀space,␈α∪etc.␈α∀ During␈α∪a
␈↓ ↓H␈↓previous␈αrehearsal,␈αthe␈αgarbage␈αcollector␈αhadn't␈αbeen␈αcalled,␈αbut␈αwe
␈↓ ↓H␈↓had␈α⊃not␈α⊃refreshed␈α∩the␈α⊃LISP␈α⊃core␈α⊃image,␈α∩so␈α⊃we␈α⊃ran␈α⊃out␈α∩of␈α⊃free
␈↓ ↓H␈↓storage during the demonstration.

␈↓ ↓H␈↓␈↓ α_Nothing␈αhad␈αever␈αbeen␈αsaid␈αabout␈αa␈αgarbage␈αcollector,␈αand␈αI
␈↓ ↓H␈↓could␈αonly␈αimagine␈αthe␈αreaction␈αof␈αthe␈αaudience.␈α We␈α
were␈αalready
␈↓ ↓H␈↓behind␈α∂time␈α∞on␈α∂a␈α∞tight␈α∂schedule,␈α∞it␈α∂was␈α∞clear␈α∂that␈α∞typing␈α∂out␈α∞the
␈↓ ↓H␈↓garbage␈α↔collector␈α↔message␈α↔would␈α↔take␈α↔all␈α↔the␈α↔remaining␈α↔time
␈↓ ↓H␈↓allocated␈α∀to␈α∀the␈α∀demonstration,␈α∃and␈α∀both␈α∀the␈α∀lecturer␈α∃and␈α∀the
␈↓ ↓H␈↓audience␈α⊃were␈α⊃incapacitated␈α⊃by␈α⊃laughter.␈α⊃ I␈α⊃think␈α⊃some␈α⊃of␈α⊂them
␈↓ ↓H␈↓thought we were victims of a practical joker.